计算机网络/计算机科学与应用/系统/运维/开发

第三章、CentOS环境安装Docker


Docker目前支持CentOS 7及以后的版本

系统的要求跟Ubuntu情况类似,64位操作系统,内核版本至少为3.10


首先,为了方便添加软件源,以及支持devicemapper存储类型,安装如下软件包:


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


添加Docker稳定版本的yum软件源:

清华大学yum源


$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

或者

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


注意 执行以上命令时,如果报错  sudo: yum-config-manager: command not found

这个是因为系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils 安装就可以了。


更新yum软件源缓存,并安装Docker


$sudo yum update
$sudo  yum install -y docker-ce


安装完毕后:

已安装:
  docker-ce.x86_64 3:20.10.10-3.el7                                                                            
作为依赖被安装:
  audit-libs-python.x86_64 0:2.8.5-4.el7                 checkpolicy.x86_64 0:2.5-8.el7                       
  container-selinux.noarch 2:2.119.2-1.911c772.el7_8     containerd.io.x86_64 0:1.4.11-3.1.el7                
  docker-ce-cli.x86_64 1:20.10.10-3.el7                  docker-ce-rootless-extras.x86_64 0:20.10.10-3.el7    
  docker-scan-plugin.x86_64 0:0.9.0-3.el7                fuse-overlayfs.x86_64 0:0.7.2-6.el7_8                
  fuse3-libs.x86_64 0:3.6.1-4.el7                        libcgroup.x86_64 0:0.41-21.el7                       
  libsemanage-python.x86_64 0:2.5-14.el7                 policycoreutils-python.x86_64 0:2.5-34.el7           
  python-IPy.noarch 0:0.75-6.el7                         setools-libs.x86_64 0:3.3.8-4.el7                    
  slirp4netns.x86_64 0:0.4.3-4.el7_8


启动Docker

$ sudo systemctl  start docker


查看 docker 版本  docker version

[root@iZ8vb9nmgwljcf9m2wxaekZ ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.10
 API version:       1.41
 Go version:        go1.16.9
 Git commit:        b485636
 Built:             Mon Oct 25 07:44:50 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true
Server: Docker Engine - Community
 Engine:
  Version:          20.10.10
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.9
  Git commit:       e2f740d
  Built:            Mon Oct 25 07:43:13 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.11
  GitCommit:        5b46e404f6b9f661a205e28d59c982d3634148f8
 runc:
  Version:          1.0.2
  GitCommit:        v1.0.2-0-g52b36a2
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0


安装完成!

启动一个Nginx容器,检查是否能正确获取镜像并运行

[root@localhost docker]# docker run -d -p 80:80 --name webserver nginx

如果出现错误:docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 108.160.170.41:443: i/o timeout.

https://www.gyzth.top/article/1539.html


再次启动一个nginx 容器时报错

$ docker run -d -p 80:80 --name webserver nginx

docker: Error response from daemon: driver failed programming external connectivity on endpoint webserver (2ff93bc4a99535d27b3ae6540b3a7762c4866dd0975f417f5a2d1b72237c8f7d): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use.

image.png


netstat -tanlp 查看端口

image.png


重新获取容器即可!

[root@iZ8vb9nmgwljcf9m2wxaekZ ~]# docker run -d -p 80:80 --name web nginx
8baf20a894b4da1f8df8364db2136af88c75fea0a5ac53bef04e027082e1996b


docker  ps 命令 查看运行的容器

[root@iZ8vb9nmgwljcf9m2wxaekZ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES
8baf20a894b4   nginx     "/docker-entrypoint.…"   6 minutes ago   Up 6 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   web

image.png


浏览器访问,则打开nginx服务

image.png


Docker

只要认真对待生活,终有一天,你的每一份努力,都将绚烂成花。

评论

^