在centos7上安装Docker CE

最近在linux内核为3.10的系统上构建镜像之后移植到centos内核为2.6.32-642.el6.x86_64上去导入和创建容器成功了

旧版本docker安装参考:https://www.cnblogs.com/lonecloud/p/7392456.html

==========================================================================

使用 sudo 或 root 权限的用户登入终端

①先确认linux系统版本是否满足安装要求:

Docker运行的平台是什么?

Linux的:

  • 运行Linux内核版本3.10+的任何发行版
  • 大多数Linux发行版都有特定的说明,包括 RHELUbuntu, Oracle Linux, SuSE等等。

微软Windows:

  • Windows Server 2016
  • Windows 10

目前,CentOS 仅发行版本中的内核支持 Docker。

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。

②理解docker的几个核心概念:

镜像:类似虚拟机的镜像、用俗话说就是安装文件。

容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,

可以将其启动、开始、停止、删除、而这些容器都是相互隔离、互不可见的。

仓库:类似代码仓库,是Docker集中存放镜像文件的场所

 按照网上的教程安装了docker后来发现安装的是旧版本的docker-engine,查阅官方文档重新安装

卸载旧版本docker-engine:

[root@localhost etc]# yum remove docker 
> docker-client 
> docker-client-latest 
> docker-common 
> docker-latest 
> docker-latest-logrotate 
> docker-logrotate 
> docker-engine

卸载docker -ce版本的方法:

yum remove docker-ce

1.检查内核版本,返回的值大于3.10即可。

[root@localhost etc]# uname -r
3.10.0-693.el7.x86_64

2.升级yum到最新

yum update

3.yum 仓库添加docker源信息

步骤一:安装所需的程序(Install required packages. yum-utils provides the yum-config-manager utility, and device-mapper-persistent-data and lvm2 are required by the devicemapperstorage drive)

[root@izwz92fbqxna6qt4ya9t4nz conf]# yum install -y yum-utils device-mapper-persistent-data lvm2

步骤二:添加docker源

[root@izwz92fbqxna6qt4ya9t4nz conf]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4.安装docker(不指定版本则默认安装所配源仓库的最新版本):

情况一:直接安装

yum install -y docker-ce

官网这个地方还安装了docker-ce-cli和containerd.io,但是我直接执行上面的安装命令,发现这两个工具也安装了

yum install docker-ce docker-ce-cli containerd.io
[root@izwz92fbqxna6qt4ya9t4nz soft]# yum install docker-ce-cli containerd.io
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Package 1:docker-ce-cli-18.09.2-3.el7.x86_64 already installed and latest version
Package containerd.io-1.2.2-3.3.el7.x86_64 already installed and latest version
Nothing to do

情况二:安装指定版本

查看所有版本及版本信息

[root@izwz92fbqxna6qt4ya9t4nz soft]# yum list docker-ce --showduplicates | sort -r
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror
Installed Packages
docker-ce.x86_64            3:18.09.2-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:18.09.2-3.el7                    @docker-ce-stable
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 

选择版本安装

yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

5.检查docker是否安装成功:

[root@izwz92fbqxna6qt4ya9t4nz soft]# docker -v
Docker version 18.09.2, build 6247962

6.启动docker:

[root@localhost etc]# systemctl start docker
#有些系统是service docker start

启动之后执行docker version可以看到客户端和服务端的相关信息,不启动的时候只能看到客户端的信息

[root@izwz92fbqxna6qt4ya9t4nz soft]# docker version
Client:
 Version:           18.09.2
 API version:       1.39
 Go version:        go1.10.6
 Git commit:        6247962
 Built:             Sun Feb 10 04:13:27 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.2
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       6247962
  Built:            Sun Feb 10 03:47:25 2019
  OS/Arch:          linux/amd64
  Experimental:     false

7.检查docker是否启动成功:

[root@localhost etc]# ps -ef | grep docker
root     28623     1  0 10:25 ?        00:00:06 /usr/bin/dockerd
root     28632 28623  0 10:25 ?        00:00:04 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
root     29726 19746  0 11:24 pts/2    00:00:00 grep --color=auto docker

8.设置开机启动:

[root@localhost etc]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

官网通过运行hello-world 镜像验证是否正确安装了Docker CE 

docker run hello-world

此命令下载测试镜像并在容器中运行它。当容器运行时,它会打印一条信息性消息并退出。注意,如果网络不好,可能不会一次成功,我搭建了2套环境,其中一套就是执行了很多次才成功

原文地址:https://www.cnblogs.com/yy-cola/p/10411350.html