Docker 从v17.03开始划分为CE 和EE。CE 即社区版,EE 即企业版,强调安全,付费使用。Docker在1.13 版本之后,从2017年的3月1日开始,版本命名规则变为如下:

Docker CE 每月发布一个Edge 版本(17.03,17.04,17.05…),每三个月发布一个Stable 版本(17.03,17.06,17.09…),Docker EE 和Stable 版本号保持一致,但每个版本提供一年维护。
二、安装部署
安装说明
安装需求:
-
Linux kernel(内核) 3.10+
- Linux kernel cgroups and namespaces
由于Docker是建立在linux中两种核心技术之上:namespace与Cgroup,而User namespace出现的版本是3.8,所以安装docker需要内核版本大于3.10,centos6内核版本是2.6所以无法在其上使用docker。
namespace系统调用参数 隔离内容 内核版本 文件系统) 用户和用户组
centos7安装
1. 安装依赖
yum install -y yum--mapper-persistent-
2.添加仓库
yum-config---add-//download.docker.com/linux/centos/docker-ce.repo
3. 查看docker版本列表
yum list docker-ce --showduplicates | sort -r
4. 安装指定版本的docker(可忽略,直接安装最新版)
yum install docker-ce- docker-ce-cli- containerd.io
5.安装最新版docker
yum install docker-ce docker-ce-cli containerd.io
Debian&Ubuntu
1. 更新包管理
sudo apt-get update
2. 添加https包信任
sudo apt--transport---properties-common
3. 添加docker官方GPG 证书
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
4. 写入软件信息
sudo add-apt-
4. 更新并安装docker
sudo apt--get install docker-ce docker-ce-cli containerd.io
5.若安装指定版本采用如下方式
$ apt-cache madison docker-docker-ce | 5:18.09.1~3-0~debian-stretch | https://download.docker.com/linux/debian stretch/<span style="color: #000000;">stable amd64 Packages
docker-ce | 5:18.09.0~3-0~debian-stretch | https://download.docker.com/linux/debian stretch/<span style="color: #000000;">stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~debian |
https://download.docker.com/linux/debian stretch/<span style="color: #000000;">stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~debian |
https://download.docker.com/linux/debian stretch/<span style="color: #000000;">stable amd64 Packages
<span style="color: #008000;">#<span style="color: #008000;">安装
sudo apt-get install docker-ce=
docker-ce-cli= containerd.io
运行docker
停止防火墙、关闭selinux
systemctl stop firewalld && systemctl disable firewalld && setenforce 0
配置镜像加速
默认docker从DockerHUB上拉取镜像,由于国内网络原因下载镜像速度会变慢,所以可以配置国内镜像加速地址https://registry.docker-cn.com,当有多个镜像加速地址时候可在列表中以逗号分割。
mkdir /etc/> /etc/docker/daemon.json <<: [EOF
运行docker
systemctl daemon-
自动docker
[root@app51 ~]
18.09.21.3910.6624796210 04:13:27 2019/Arch: linux/Server: Docker Engine -<span style="color: #000000;"> Community
Engine:
Version: 18.09.2<span style="color: #000000;">
API version: 1.39 (minimum version 1.12<span style="color: #000000;">)
Go version: go1.10.6<span style="color: #000000;">
Git commit: 6247962<span style="color: #000000;">
Built: Sun Feb 10 03:47:25 2019<span style="color: #000000;">
OS/Arch: linux/amd64
三、docker基本操作
容器操作
docker 命令采用了分组管理的思想,已经纳入管理的docker命令如下(版本18.09.2):

其中docker container 则是管理容器命令,老的版本中是使用docker进行容器管理,新版本兼容老版本docker命令,所以对容器管理既可用docker也可以用docker container。
1.启动容器
方式1:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
常用OPTIONS:
- -i:--interactive,交互式启动
- -t:--tty,分配终端
- -v:--volume,挂在数据卷
- -d:--detach,后台运行
- --name:容器名字
- --network:指定网络
- --rm:容器停止自动删除容器
- -P:自动暴露所有容器内端口,宿主随机分配端口
- -p:指定端口映射,将容器内服务的端口映射到宿主机的指定端口,可以使用多个-p
可以使用如下三种方式:
:指明主机的端口映射为容器端口
::指定主机ip和端口
示例:运行一个名字为
Nginx-container的容器,使用镜像
Nginx,并将宿主机的8080映射到容器内部80端口,然后进入交互模式。
[root@app51 ~]
Nginx-container -p 8080:80 Nginx /bin/bash
root@fd92290433da:/
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
2.查看容器
docker ps [OPTIONS]
常用选项:
- -a:--all ,查看所有容器,包括退出和其他状态的
- -n::--last int,显示最后n个创建的容器
- -l,:--latest ,显示最近的容器
示例 :
root@app51 ~]
Box 11 seconds ago Up 9Box
383f31ff8f01 Nginx Nginx -g 'daemon of… 3 minutes ago Up 3 minutes 0.0.0.0:8080->80/tcp Nginx-~]
Box 41 seconds ago Up 39Box
[root@app51 ~]
3.查看容器具体信息
docker inspect [OPTIONS] NAME|ID [NAME|ID…]
示例:
[root@app51 ~]Box
: : : : [],
4.停止容器
方式一:docker stop [OPTIONS] CONTAINER [CONTAINER…]
方式二: docker kill [OPTIONS] CONTAINER [CONTAINER…]
区别:docker stop 相当于发送15停止信号,而kill是强制终止对应信号9
示例:
[root@app51 ~]
Nginx-container
Nginx-container
5.启动已停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER…]
常用选项:
- -a:--attach 附加终端
- -I:--interactive 交互式
[root@app51 ~]Box
/
/
1 root 0:00 /bin/7 root 0:00 ps
docker rm [OPTIONS] CONTAINER [CONTAINER…] 或者docker container rm
常用选项:
示例:
docker rm
Nginx-container
Ps:删除所有容器
docker rm -f `docker ps -a --a |awk -F |xargs docker rm -f
7. 暂停某个容器
docker pause CONTAINER [CONTAINER…]
示例:
[root@app51 ~]
Nginx-container
Nginx-container
8.恢复暂停的容器
docker unpause CONTAINER [CONTAINER…]
[root@app51 ~]
Nginx-container
Nginx-container
9.查看容器日志
docker logs [OPTIONS] CONTAINER
常用选项:
root@app51 ~]Nginx-container
10.1.201.30 - - [23/Feb/2019:10:55:33 +0000] 304 0
10.在已运行的容器中运行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
常用选项:
- -d:--detach ,后台运行命令
- -e,--env list 设置env
- -i,--interactive 启用交互式
- -t,--tty 启用终端
- -u,--user string 指定用户 (格式: [:])
- -w,--workdir string 指定工作目录
示例:
[root@app51 ~]
Nginx Nginx-container /bin/sh
=101(Nginx) gid=101(Nginx) groups=101Nginx)
$
11.容器导出
docker export [OPTIONS] CONTAINER
容器导出类似于容器快照,导出的是容器的在宿主机上的
文件系统压缩包,导出的
文件系统可使用docker import进行导入,在其他机器导入时候会以镜像的方式存在。
常用参数
示例 :
[root@app51 ~]
Nginx-container -o Nginx.tar
[root@app51 ~]
-rw------- 1 root root 107M 2月 23 19:18 ningx.tar
12.将导出的容器导入为镜像
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
示例:
[root@app51 ~]
Nginx.tar Nginx:v154
~]
Nginx v154 fd4931710d35 10 940cdf68f69d 7Box latest d8233ab899d4 8 days ago 1Nginx latest f09fe80eb0e7 2 weeks ago 109MB
其他导入示例
docker http://example.com/image.tar.gz repository:tag
12.将容器提交为镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
常用选项:
- -a,--author 指定作者
- -m,--message 本次提交的信息
- -p,--pause 提交为镜像时候暂停容器
- -c,--change list 修改镜像某些属性,列如启动命令
示例:
[root@app51 ~]
Nginx image' Nginx-container Nginx:test
~]
Nginx test 6c68885804ca 6Nginx v154 fd4931710d35 2 hours ago 108MB
镜像操作
在老版本中镜像操作也是使用的docker命令,新版本进行了分组,可使用docker image 来进行镜像操作。
docker search [OPTIONS] TERM
常用选项:
[root@app51 ~]
5179/centos7-ansible Ansible on Centos7 120/centos-ssh CentOS-6 6.10 x86_64 / CentOS-7 7.5.1804 x86… 106/centos-xfce-vnc Centos container with VNC session… 80 [OK]
结果字段含义:
DESCRIPTION :镜像描述
OFFICIAL :是否为官方镜像
2.下载镜像
docker image pull : 或者docker pull
TAG不写默认为最新版本latest
[root@app51 ~]
library/ centos:latest
3.查看镜像
docker image ls 或者docker images
常用选项:
- -a: 查看所有已下载的镜像
- -f: --filter,过滤某些镜像
[root@app51 ~]
2 months ago 202MB
docker image rm [OPTIONS] IMAGE [IMAGE...] 或者docker rmi IMAGE
[root@app51 ~]
5. 镜像导出
docker save [OPTIONS] IMAGE [IMAGE...]
将镜像打包为压缩包,可在其他docker主机进行导入,一次可打包多个
常用选项:
示例:
[root@app51 ~]
Nginx-bus.tar.gz busyBox:latest Nginx:latest
6.镜像导入
docker load [OPTIONS]
常用选项:
[root@app51 ~]
Nginx-bus.tar.gz
Nginx:latest
Loaded image: busyBox:latest
7.查看镜像信息
docker image inspect [OPTIONS] IMAGE [IMAGE...]
[root@app51 ~]Nginx
: Nginx:latestNginx@sha256:dd2d0ac3fff2f007d99e033b64854be0941e19a2ad51f174d9240dda20d9f534
其他
运行信息查看docker info
[root@app51 ~]
Containers: 11418.09.2
版本信息查看 docker version
root@app51 ~]
18.09.21.3910.6624796210 04:13:27 2019/Arch: linux/