Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
官网:https://www.docker.com/ 相关资料:
1、Docker入门教程 http://dockone.io/article/111
2、Docker_百度百科 http://baike.baidu.com/view/11854949.htm
3、史上最全Docker资料集粹 http://special.csdncms.csdn.net/BeDocker/
4、Docker - 话题精华 - 知乎 http://www.zhihu.com/topic/19950993/top-answers
5、docker 简明教程 | 简果网 http://www.simapple.com/docker-tutorial
6、如何使用Dockerfile构建镜像 http://blog.csdn.net/qinyushuang/article/details/43342553
7、Dockerfile reference - Docker https://docs.docker.com/engine/reference/builder/
Docker与虚拟机比较
作为一种轻量级的虚拟化方式,Docker在运行应用上跟传统的虚拟机方式相比具有显著优势:
Docker容器很快,启动和停止可以在秒级实现,这相比传统的虚拟机方式要快得多。
Docker容器对系统资源需求很少,一台主机上可以同时运行数千个Docker容器。
Docker通过类似Git的操作来方便用户获取、分发和更新应用镜像,指令简明,学习成本较低。
Docker通过Dockerfile配置文件来支持灵活的自动化创建和部署机制,提高工作效率。
虚拟机实现了硬件上的虚拟,而Docker则实现了操作系统级别的虚拟。
安装
Docker 要求 Ubuntu 系统的内核版本高于 3.10 ,通过 uname -r 命令查看你当前的内核版本:
[root@bogon ~]# uname -r
3.10.0-327.22.2.el7.x86_64
Docker支持以下的CentOS版本:
CentOS 7 (64-bit)
CentOS 6.5 (64-bit) 或更高的版本
Docker 支持以下的 Ubuntu 版本:
Ubuntu Precise 12.04 (LTS)
Ubuntu Trusty 14.04 (LTS)
Ubuntu Wily 15.10
其他更新的版本……
Linux安装
curl -fsSL https://get.docker.com/ | sh
# daocloud.io 国内镜像
curl -sSL https://get.daocloud.io/docker | sh
该安装包适用于 Ubuntu,Debian,Centos 等大部分主流 Linux 发行版。
当以普通用户身份去使用docker images时,如果出现以下错误:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied
是因为权限问题:
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart
newgrp - docker
CentOS7支持使用yum安装:
yum update
yum install docker
查看文档:
https://docs.docker.com/engine/installation/linux/centos/
http://docs.daocloud.io/faq/install-docker-daocloud
查看版本:
docker version
显示:
Client:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 21:23:11 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 21:23:11 2016
OS/Arch: linux/amd64
启动docker服务:
service docker start
# 或者 systemctl start docker
centos7使用systemctl 替代service 管理服务。
systemctl 常见用法:
# 格式
systemctl 动作 服务名.service
# 常见命令 systemctl start docker #启动
systemctl restart docker #重启
systemctl stop docker #停止
systemctl status docker #查看状态
systemctl enable docker #自启动
systemctl disable docker #禁止自启动
.service可以省略。 (详见:RHEL7中systemctl的用法 http://blog.csdn.net/catoop/article/details/47318225)
为了后面的需要,我们这里下载个ubuntu的镜像:
docker search ubuntu
docker pull ubuntu
# 查看所有可用镜像 docker images -a
使用docker命令 docker images 备注:查看docker已经安装的镜像 裸机状态下为空
使用docker安装mysql step1:使用docker pull 拉取docker hub仓库中mysql镜像 (注意备注) mysql镜像版本如下:
docker pull mysql:8.0
备注:docker pull 默认到官方参考拉取 mysql:8.0 镜像名:镜像tag
官方地址为国外地址安装缓慢可进行配置
修改镜像文件拉取地址为ustc
vi /etc/docker/daemon.json
备注:insert 编辑内容如下 并esc 输入:wq 保存退出
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
重启docker 重新进行step1 安装速度变快
systemclt restart docker
查看镜像安装情况
docker images
启动docker中镜像
docker run --name mysql8.0 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0
备注 :--name 服务启动别名设置 -p端口映射 宿主机端口:镜像运行端口 -d 镜像名:tag 使用守护进程模式启动 -e:设置root帐号密码
查看运行的镜像
docker ps -a
进入镜像 运行mysql
docker exec -it mysql8.0 /bin/bash
备注:exec docker进入容器命令 -it 容器中服务别名 /bin/bash 表示命令行模式 与 -d 后台守护进行模式启动 形成两种运行方式 进入容器中如图所示变化如下
cd /usr/bin
mysql -u root -p 备注: 在容器中进入用户目录启动mysql 输入密码连接成功