CentOS7安装Docker

Posted howinfun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7安装Docker相关的知识,希望对你有一定的参考价值。

Docker 的环境依赖

由于 Docker 的容器隔离依赖于 Linux 内核中的相关支持,所以使用 Docker 首先需要确保安装机器的 Linux kernel 中包含Docker 所需要使用的特性。以目前 Docker 官方主要维护的版本为例,我们需要使用基于 Linux kernel 3.10 以上版本的 Linux 系统来安装 Docker,下面的表格将直接展示 Docker 对主流几款 Linux 系统版本的要求。


























操作系统 支持的系统版本
CentOS CentOS 7
Debian Debian Wheezy 7.7 (LTS)
Debian Jessie 8 (LTS)
Debian Stretch 9
Debian Buster 10
Fedora Fedora 26
Fedora 27
Ubuntu Ubuntu Trusty 14.04 (LTS)
Ubuntu Xenial 16.04 (LTS)
Ubuntu Artful 17.10

当然,在较低版本的 Linux 系统中也能安装 Docker,不过只能是版本较低的 Docker,其功能存在一些缺失,或者与最新版本有所区别。所以如果条件允许,建议将系统升级到支持最新版本 Docker 的系统版本。

CentOS7安装最新DOcker的命令。

因为我的阿里云是CentOS7,所以就直接上相关的命令了。

$ sudo yum install yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce
$ sudo systemctl enable docker
$ sudo systemctl start docker

简单介绍上手命令:

  • 启动Docker服务:
$ sudo systemctl start docker
  • 实现Docker服务开机自启动的命令:
$ sudo systemctl enable docker
  • 查看Docker的版本信息:
$ sudo docker version

下面为命令的内容:我们可以看到我们的Docker的版本号是19.03.2,表示是19年3月的第2次修正

[root@izwz90lvzs7171wgdhul8az ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.2
 API version:       1.40
 Go version:        go1.12.8
 Git commit:        6a30dfc
 Built:             Thu Aug 29 05:28:55 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.2
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.8
  Git commit:       6a30dfc
  Built:            Thu Aug 29 05:27:34 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
  • 查看Docker更多的信息:
$ sudo docker info

下面为命令的内容:

[root@izwz90lvzs7171wgdhul8az ~]# docker info
Client:
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 19.03.2
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 .......
  • 列出Docker中所有镜像:
$ sodu docker images

下面为命令内容:

[root@izwz90lvzs7171wgdhul8az ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              2ca708c1c9cc        9 days ago          64.2MB
  • 拉取镜像:
$ sodu docker pull ubuntu

下面为命令内容:

[root@izwz90lvzs7171wgdhul8az ~]# docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
5667fdb72017: Pull complete 
d83811f270d5: Pull complete 
ee671aafb583: Pull complete 
7fc152dfb3a6: Pull complete 
Digest: sha256:b88f8848e9a1a4e4558ba7cfc4acc5879e1d0e7ac06401409062ad2627e6fb58
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

当我们没有提供镜像标签时,Docker 会默认使用 latest 这个标签

  • 查看某个镜像的详细信息[除了传递镜像或容器的名称外,还可以传入镜像 ID 或容器 ID]:
$ sodu docker inspect ubuntu:latest

下面为命令内容:

[root@izwz90lvzs7171wgdhul8az ~]# docker inspect ubuntu:latest
[
    
        "Id": "sha256:2ca708c1c9ccc509b070f226d6e4712604e0c48b55d7d8f5adc9be4a4d36029a",
        "RepoTags": [
            "ubuntu:latest"
        ],
        "RepoDigests": [
            "ubuntu@sha256:b88f8848e9a1a4e4558ba7cfc4acc5879e1d0e7ac06401409062ad2627e6fb58"
        ],
     ......
    
]
  • 删除镜像[参数是镜像的名称或 ID]:
$ sudo docker rmi ubuntu:latest'

下面为命令内容:

[root@izwz90lvzs7171wgdhul8az ~]# docker rmi ubuntu:latest
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:b88f8848e9a1a4e4558ba7cfc4acc5879e1d0e7ac06401409062ad2627e6fb58
Deleted: sha256:2ca708c1c9ccc509b070f226d6e4712604e0c48b55d7d8f5adc9be4a4d36029a
Deleted: sha256:bd416bed302bc2f061a2f6848a565483a5f265932d2d4fa287ef511b7d1151c8
Deleted: sha256:5308e2e4a70bd4344383b8de54f8a52b62c41afb5caa16310326debd1499b748
Deleted: sha256:dab02287e04c8b8207210b90b4056bd865fcfab91469f39a1654075f550c5592
Deleted: sha256:a1aa3da2a80a775df55e880b094a1a8de19b919435ad0c71c29a0983d64e65db

docker rmi 命令也支持同时删除多个镜像,只需要通过空格传递多个镜像 ID 或镜像名即可。

更换阿里云镜像源

Docker官方也提供了一个国内镜像源,但是呢,必须还是阿里的香,当然了,我们也可以两个都配置上。
在 Linux 环境下,我们可以通过修改 /etc/docker/daemon.json ( 如果文件不存在,你可以直接创建它 ) 这个 Docker 服务的配置文件达到效果。


    "registry-mirrors": [
        "https://ns2wtlx2.mirror.aliyuncs.com",
        "https://registry.docker-cn.com"
    ]

修改后,记得重启Docker来让配置生效:

$ sudo systemctl restart docker

最后通过docker info 来查阅当前注册的镜像源列表。

$ sudo docker info

下面为命令内容:

[root@izwz90lvzs7171wgdhul8az ~]# docker info
......
 Registry Mirrors:
  https://registry.docker-cn.com/
  https://ns2wtlx2.mirror.aliyuncs.com/
 Live Restore Enabled: false
 .....

以上是关于CentOS7安装Docker的主要内容,如果未能解决你的问题,请参考以下文章

Docker学习Centos7环境安装Docker

Docker -- CentOS7安装Docker(含安装启动(关闭防火墙)配置Docker镜像加速)

Centos7安装Docker

CentOS7离线安装Docker和卸载Docker步骤(亲测有效)

docker在centos7宿主机上的安装和卸载

Docker容器管理--CentOS7安装docker