CentOS 7 安装docker
docker安装
必须在服务器连接外网的情况下进行安装。下载安装包安装的时候还是要联网下载一些依赖,所以不联网安装不成功
1.查看linux内核版本
我是虚拟机装的Centos7.5.1805,linux 3.10 内核,docker官方说至少3.8以上,建议3.10以上
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]#
2.把yum包更新到最新
yum install -y yum-utils
3.设置yum仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4.安装最新版本的docker引擎和容器
yum install docker-ce docker-ce-cli containerd.io
5. 安装指定版本的docker引擎和容器
a. 排序列出仓库中可用的docker版本
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
b. 安装指定版本docker引擎和容器
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
安装过程中需要确认是否安装及更新依赖,输入"Y"回车即可
6.启用nightlyz和test仓库
#启用nightlyz仓库
yum-config-manager --enable docker-ce-nightly
#启用test仓库
yum-config-manager --enable docker-ce-test
#禁用
yum-config-manager --disable docker-ce-nightly
7.启动docker
systemctl start docker
8.确认docker引擎正确安装并运行hello-world 镜像.
docker pull hello-world
docker run hello-world
如果安装成功会出现:

9.安装完成后下载本地仓库镜像报错
Error response from daemon: Get https://192.168.10.10:5000/v2/: http: server gave HTTP response to HTTPS client
原因:docker默认使用https,而我们的私有仓库暂时不支持https
处理方法:在”/etc/docker/“目录下,创建”daemon.conf“文件(如果有的话直接覆盖)。在文件中写入
//地址替换为自己docker仓库的地址和端口
{ “insecure-registries”:[“192.168.10.10:5000”] }
在docker server启动的时候,增加启动参数,默认使用HTTP访问:
vim /usr/lib/systemd/system/docker.service

在12行后面增加 --insecure-registry ip:5000
然后重新加载docker配置,重启docker服务
10.重新加载docker配置,重启docker服务
systemctl daemon-reload
systemctl restart docker
11.查看docker版本
docker version
12.从私有仓库下载镜像时报no basic auth credentials
将私有仓库中的/${username}/.docker/config.json文件复制到本机的相同目录下即可,该文件的内容一般是这样:
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "YW11cmRhY2E6c3VwZXJzZWNyZXRwYXNzd29yZA=="
},
"localhost:5001": {
"auth": "aGVzdHVzZXI6dGVzdHBhc3N3b3Jk"
}
}
}
13.列出本机已有的镜像:
docker images
docker image ls
14.配置docker开机自启
# 设置开机启动
systemctl enable docker
15. docker自动启动容器
Docker提供了==重新启动策略==来控制容器在退出时或Docker重新启动时是否自动启动。重新启动策略可确保以正确的顺序启动链接的容器。Docker建议您使用重新启动策略,并避免使用进程管理器来启动容器
重新启动策略`--live-restore`与`dockerd` 命令的标志不同。`--live-restore`尽管网络和用户输入中断,但使用允许您在Docker升级期间保持容器运行。
使用重启策略
要为容器配置重新启动策略,请`--restart`在使用该`docker run`命令时使用该标志。`--restart`标志的值可以是以下任何一种:
| 参数值 | 描述 |
|---|---|
no |
不要自动重启容器。(默认) |
on-failure |
如果容器由于错误而退出,则重新启动容器,该错误表现为非零退出代码。 |
always |
如果容器停止,请务必重启容器。如果手动停止,则仅在Docker守护程序重新启动或手动重新启动容器本身时才重新启动。(参见重启政策详情中列出的第二个项目) |
unless-stopped |
类似于always,除了当容器停止(手动或其他方式)时,即使在Docker守护程序重新启动后也不会重新启动容器。 |
以下示例启动Redis容器并将其配置为始终重新启动,除非明确停止或重新启动Docker。
docker run --restart unless-stopped redis
重启政策详情
使用重启策略时请记住以下几点:
- 重启策略仅在容器成功启动后生效。在这种情况下,成功启动意味着容器启动至少10秒并且Docker已开始监视它。这可以防止根本不启动的容器进入重启循环。
- 如果手动停止容器,则会忽略其重新启动策略,直到Docker守护程序重新启动或手动重新启动容器。这是防止重启循环的另一种尝试。
- 重新启动策略仅适用于容器。群组服务的重新启动策略配置不同。请参阅与服务重新启动相关的 标志。
如果run时没有添加restart 可以通过update命令追加
docker update --restart=always web
1、先后台启动容器未加restart参数
2、docker ps 查看了当前运行的容器
3、重启docker 服务
4、再次docker ps 查看当前运行的容器,发现容器并没有运行
5、利用 update 设置 restart=always
6、重启docker 服务
7、再次docker ps 查看当前运行的容器,此时发现已经自动启动容器
使用流程管理器
如果重新启动策略不适合您的需要,例如当Docker之外的进程依赖Docker容器时,您可以使用流程管理器,例如 upstart, systemd或supervisor。
警告:不要尝试将Docker重新启动策略与主机级进程管理器结合使用,因为这会产生冲突。
要使用进程管理器,请将其配置为使用您通常用于手动启动容器的相同docker start或docker service命令来启动容器或服务。有关更多详细信息,请参阅特定流程管理器的文档。
在容器内使用进程管理器
进程管理器也可以在容器内运行,以检查进程是否正在运行,如果没有则启动/重启进程

浙公网安备 33010602011771号