环境:
centos7.6
Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到装载了任何流行的 Linux 版本系统的机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低
Docker 镜像(Images):Docker 镜像是用于创建 Docker 容器的模板。
Docker 容器(Container):容器是独立运行的一个或一组应用。
Docker 客户端(Client):客户端通过命令行或者其它工具来使用 Docker API(https://docs.docker.com/develop/sdk)来与 Docker 的守护进程通信。
Docker 主机(Host):一个物理或者虚拟的机器用于运行 Docker 守护进程和容器。
Docker 仓库(Registry):Docker 仓库用来保存镜像,可以理解为代码版本控制中的代码仓库。Docker Hub(https://hub.docker.com)提供了庞大的镜像集合供使用。
安装
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上
检查内核版本
uname -a
如若你的 CentOS7 系统的内核版本低于了 3.10,那么可以通过以下命令升级:
yum update
安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
添加docker yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
直接安装最新版本的docker
yum install -y docker
如果想安装指定版本,查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
安装Docker,命令:yum install docker-ce-版本号,我选的是17.12.1.ce
yum install docker-ce-17.12.1.ce
启动Docker
systemctl start docker
查看Docker版本信息以检查是否安装成功
docker -v
设置开机启动
systemctl enable docker
配置阿里云镜像加速
使用 Docker 进行 pull 操作时访问国外镜像可能会很慢,可按如下操作配置阿里云镜像加速
登录阿里云控制台官网
打开容器镜像服务,镜像加速器,复制加速器地址
修改daemon.json 文件
vim /etc/docker/daemon.json
#添加
{
"registry-mirrors": ["加速器地址"]
}
比如
{
"registry-mirrors": ["https://d2u1rp8k.mirror.aliyuncs.com"]
}
重启
systemctl daemon-reload
systemctl restart docker
安装docker-compose
curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
上面安装的是稳定版本1.23.2的 docker-compose,可以到github上找最新版 https://github.com/docker/compose/releases
卸载 docker-compse
sudo rm /usr/local/bin/docker-compose
docker常见操作
镜像操作
查询镜像
如果我们要在 Docker 仓库中查询一个镜像,比如我们需要一个 tomcat 镜像,可通过如下操作进行查询
docker search tomcat
下载镜像
docker pull tomcat
上述操作默认下载的是最新版本(latest)的镜像,我们还可以通过 tag 参数来下载指定版本的镜像,格式为 docker pull 镜像名[:tag]
可使用的 tag 版本可以在 Docker Hub 官网上看到。
比如安装tomcat8.0
docker pull tomcat:8.0
查看已下载镜像
docker images
删除已下载镜像
如果我们要删除一个已下载的镜像,则可通过 docker rmi 镜像id 来操作
docker rmi <IMAGE ID>
容器操作
使用镜像创建并启动一个容器,命令格式如下
docker run --name <container-name> [-d] -p [本机端口]:[容器端口] <image-name>[:tag]
其中 container-name 为将启动容器的自定义实例名称, -d 表示后台运行, -p [本机端口]:[容器端口] 参数来指定端口映射, image-name 为镜像名称, :tag 为版本表示。如
docker run --name mytomcat -d -p 8080:8080 tomcat
此时就可以通过主机8080端口访问到Docker容器中的8080端口
查看运行中的容器
docker ps
查看容器日志
查看容器运行期间生成的日志可通过如下命令:
docker logs <container-id|names>
停止运行中的容器
可以通过运行中容器的 id 或名称来停止该容器
docker stop <container-id|names>
查看所有容器(包含已停止的容器)
docker ps -a
启动容器
docker start <container-id|names>
删除容器
docker rm <container-id|names>