
安装
1.查看系统、内核
CentOS7 要求64位系统、内核版本3.10以上
CentOS6 要求版本在6.5以上,系统64位、内核版本2.6.32-431以上
查看内核版本号
1 2 3
| uname -r #查看内核版本
cat /etc/os-release #查看系统信息.
|
开启centos-extras资源库
使用Centos 7,开启centos-extras资源库
2.卸载旧版本
卸载旧版本
1 2 3 4 5 6 7 8
| sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
|
删除旧版本Docker文件
1
| sudo rm /var/lib/docker/ -rf
|
3.设置仓库
设置yum仓库
安装必要依赖包
1 2 3
| sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
|
添加阿里镜像稳定版仓库
1
| sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
|
添加阿里源时有时会报错,如果报错,使用如下命令使用官方源
1 2 3 4 5
| #删除异常源 sudo rm -f /etc/yum.repos.d/docker-ce.repo
#使用官方源 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
|
更新yum缓存
4.安装Docker-CE
注意事项:本步骤分两部分,仅需按需求使用其一
安装最新版
1
| sudo yum install -y docker-ce docker-ce-cli containerd.io
|
安装指定版本
列出可用版本
1 2 3 4 5 6 7
| yum list docker-ce --showduplicates | sort -r
# 显示结果 # docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable # docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable # docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable # docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
|
安装指定版本
需要替换为第二列的版本号,如:18.06.0.ce-3.el7
1
| sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
|
设置镜像代理
阿里Docker镜像云服务
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
运行
启动Docker服务
运行镜像
查看本地的镜像

- REPOSITORY:表示 镜像的仓库源
- TAG: 表示镜像的版本标签 (:版本号)
- IMAGE ID :镜像ID
- CREATED :镜像创建的时间
- SIZE: 镜像的大小
所有本地镜像包含中间镜像层
只显示镜像的ID
显示当前镜像的ID
显示镜像的描述信息
显示完整的镜像信息
1
| docker images --digests --no-trunc
|
查找镜像命名
找Start大于30的tomca
1
| docker search -s 30 tomcat
|
下载镜像
删除镜像
强制删除
删除多个镜像
1
| docker rmi 镜像名称 :TAG 镜像名称2:TAG
|
删除全部镜像
1 2
| docker rmi -f $(docker images -q)
|
创建一个新的容器并运行一个命令
基本语法
1
| docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
|
OPTIONS说明
- -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- -P: 随机端口映射,容器内部端口随机映射到主机的高端口
- -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
- –name=”nginx-lb”: 为容器指定一个名称;
- –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
- –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
- -h “mars”: 指定容器的hostname;
- -e username=”ritchie”: 设置环境变量;
- –env-file=[]: 从指定文件读入环境变量;
- –cpuset=”0-2” or –cpuset=”0,1,2”: 绑定容器到指定CPU运行;
- **-m :**设置容器使用内存最大值;
- –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
- –link=[]: 添加链接到另一个容器;
- –expose=[]: 开放一个端口或一组端口;
- **–volume , -v: **绑定一个卷
测试用例
使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
docker run --name mynginx -d nginx:latest
使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。
docker run -P -d nginx:latest
使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
docker run -p 80:80 -v /data:/data -d nginx:latest
绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
$docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
使用镜像nginx:latest以交互模式启动一**-n:** 显示最近N个容器;个容器,在容器内执行/bin/bash命令。
docker run -it nginx:latest /bin/bash
查看正在运行的容器
基本语法
OPTIONS说明:
- **-a :**当前正在运行的+历史运行过的;
- -l: 最近创建的容器ID;
- -n: 显示最近N个容器;
- -q: 静默模式,只显示容器Id
- --no -trunc;不断输出
退出容器
exit
容器停止推出
ctrl+P+Q
容器不停止退出
启动容器
重启容器
停止容器
1 2 3
| docker stop 容器名称或ID (温柔)
docker kill 容器名称或ID (强制停止)
|
删除容器
一次性删除多个容器
1 2 3
| docker rm -f $(docker ps -a -q) # 或 docker ps -a -q|xagrgs docker rm
|
查看容器内部的细节
查看容器的IP地址
1
| docker inspect 容器ID或容器名 |grep "IPAddress"
|
连接运行的容器并以命令行交互
1
| docker exec -it 容器ID bashShell(shell命令)
|
重新进入容器
exec与 attach的区别
- attach :直接进入容器,启动命令终端,不会启动新的进程
- exec:实在容器中打开新的终端,并且可以启动新的