码迷,mamicode.com
首页 > 其他好文 > 详细

centos7安装docker

时间:2018-05-20 01:08:47      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:pid   不可用   内容   sys   top   red   efi   com   dom   

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

一、安装docker

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r命令查看你当前的内核版本

$ uname -r

 

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。(慎重,可能导致其它软件包不可用)

不要随便yum update 后果有时会导致系统启动不了,因为它会更新你的内核,如果更新失败,最好yum clean all

$ sudo yum update

 

3、卸载旧版本(如果安装过旧版本的话)

$ sudo yum remove docker  docker-common docker-selinux docker-engine

 

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

 

5、设置yum源

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

 
技术分享图片
 

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

$ yum list docker-ce --showduplicates | sort -r

 

 
技术分享图片
 

7、安装docker

$ sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0 
$ sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce

 

 
技术分享图片
 

8、启动并加入开机启动

$ sudo systemctl start docker
$ sudo systemctl enable docker

 

服务启、停、查、重启

service docker start/stop/status/restart
chkconfig docker on

 

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

$ docker version

 

 
技术分享图片
 

测试运行 hello-world

[root@runoob ~]#docker run hello-world

 

 
技术分享图片
 

由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。

10、其它
列出所有本地镜像

docker images

 

删除本地镜像

docker rmi centos

 

如果已经有基于此镜像的容器,需要先删除相应的容器再删除镜像。或者通过-f参数强制删除镜像,如docer rmi -f centos

二、问题

1、因为之前已经安装过旧版本的docker,在安装的时候报错如下:

Transaction check error:
  file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

 

2、卸载旧版本的包

$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

 

 
技术分享图片
 

卸载Docker CE

[root@centos_7 ~]# sudo yum remove docker-ce 
[root@centos_7 ~]#  sudo rm -rf /var/lib/docker

 

3、再次安装docker

$ sudo yum install docker-ce

 

无法正常启动问题

[root@test ~]# service docker start

Redirecting to /bin/systemctl start  docker.service

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

[root@localhost plugins]# journalctl -xe
5月 17 15:11:13 localhost.localdomain dockerd[10864]: time="2018-05-17T15:11:13+08:00" l
5月 17 15:11:13 localhost.localdomain dockerd[10864]: time="2018-05-17T15:11:13+08:00" l
5月 17 15:11:13 localhost.localdomain dockerd[10864]: time="2018-05-17T15:11:13+08:00" l
5月 17 15:11:13 localhost.localdomain dockerd[10864]: time="2018-05-17T15:11:13+08:00" l
5月 17 15:11:13 localhost.localdomain dockerd[10864]: time="2018-05-17T15:11:13+08:00" l
5月 17 15:11:13 localhost.localdomain dockerd[10864]: time="2018-05-17T15:11:13+08:00" l
5月 17 15:11:13 localhost.localdomain dockerd[10864]: time="2018-05-17T15:11:13+08:00" l
5月 17 15:11:13 localhost.localdomain dockerd[10864]: time="2018-05-17T15:11:13+08:00" l
5月 17 15:11:13 localhost.localdomain dockerd[10864]: time="2018-05-17T15:11:13+08:00" l
5月 17 15:11:13 localhost.localdomain dockerd[10864]: time="2018-05-17T15:11:13+08:00" l
5月 17 15:11:13 localhost.localdomain dockerd[10864]: time="2018-05-17T15:11:13+08:00" l
5月 17 15:11:13 localhost.localdomain dockerd[10864]: time="2018-05-17T15:11:13+08:00" l
5月 17 15:11:13 localhost.localdomain dockerd[10864]: Error starting daemon: error initi
5月 17 15:11:13 localhost.localdomain systemd[1]: docker.service: main process exited, c
5月 17 15:11:13 localhost.localdomain systemd[1]: Failed to start Docker Application Con
-- Subject: Unit docker.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit docker.service has failed.
-- 
-- The result is failed.
5月 17 15:11:13 localhost.localdomain systemd[1]: Unit docker.service entered failed sta
5月 17 15:11:13 localhost.localdomain systemd[1]: docker.service failed.
5月 17 15:11:13 localhost.localdomain systemd[1]: docker.service holdoff time over, sche
5月 17 15:11:13 localhost.localdomain systemd[1]: start request repeated too quickly for
5月 17 15:11:13 localhost.localdomain systemd[1]: Failed to start Docker Application Con
-- Subject: Unit docker.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit docker.service has failed.
-- 
-- The result is failed.
5月 17 15:11:13 localhost.localdomain systemd[1]: Unit docker.service entered failed sta
5月 17 15:11:13 localhost.localdomain systemd[1]: docker.service failed.

[root@localhost packages]# systemctl status docker.service -l
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since 四 2018-05-17 14:55:09 CST; 7min ago
     Docs: https://docs.docker.com
  Process: 9940 ExecStart=/usr/bin/dockerd (code=exited, status=1/FAILURE)
 Main PID: 9940 (code=exited, status=1/FAILURE)

5月 17 14:55:09 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
5月 17 14:55:09 localhost.localdomain systemd[1]: Unit docker.service entered failed state.
5月 17 14:55:09 localhost.localdomain systemd[1]: docker.service failed.
5月 17 14:55:09 localhost.localdomain systemd[1]: docker.service holdoff time over, scheduling restart.
5月 17 14:55:09 localhost.localdomain systemd[1]: start request repeated too quickly for docker.service
5月 17 14:55:09 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
5月 17 14:55:09 localhost.localdomain systemd[1]: Unit docker.service entered failed state.
5月 17 14:55:09 localhost.localdomain systemd[1]: docker.service failed.

 

查看文件系统 /etc/docker/daemon.json 有没有这个文件,没有测创建它包括二级目录 docker
在daemon.json文件中输入以下内容:

[root@localhost plugins]# vi /etc/docker/daemon.json
{
    "graph": "/mnt/docker-data",
    "storage-driver": "devicemapper",
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

 

我的问题是添加"storage-driver": "devicemapper"解决


使用脚本安装 Docker
1、使用 sudo 或 root 权限登录 Centos。
2、确保 yum 包更新到最新。(慎重,可能导致其它软件包不可用)

$ sudo yum update

 

3、执行 Docker 安装脚本。

$ curl -fsSL https://get.docker.com/ | sh

 

执行这个脚本会添加 docker.repo 源并安装 Docker。

4、启动 Docker 进程。

$ sudo service docker start

 

5、验证 docker 是否安装成功并在容器中执行一个测试的镜像。

$ sudo docker run hello-world
docker ps

 

到此,docker 在 CentOS 系统的安装完成。

镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com
新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。
请在该配置文件中加入(没有该文件的话,请先建一个):

# 如果没有此文件,则新建一个
vi /etc/docker/daemon.json

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

 

centos7安装docker

标签:pid   不可用   内容   sys   top   red   efi   com   dom   

原文地址:https://www.cnblogs.com/zhouxinfei/p/9062265.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!