docker技巧

阿里云ecs服务器安装docker

主要面临的一个问题就是不能访问docker.io国外资源,以下就是简单的解决办法:

Architecture: x86-64
Operating System: Alibaba Cloud Linux 3 (Soaring Falcon)
Docker Engine – Community 26.0.0

官方文档:Install Docker Engine on CentOS (注,Alibaba Cloud Linux 3 是一个 CentOS 系统。 )

https://docs.docker.com/engine/install/centos

阿里云 Docker CE 镜像
https://developer.aliyun.com/mirror/docker-ce

说明,:根据官网文档 也可以安装,但考虑到 下载速度,最后选择了 阿里云镜像 进行安装。 安装全程使用 root 账号。

安装步骤

打开 阿里云 Docker CE 镜像 页面:

阿里云ecs服务器安装docker

因为 Alibaba Cloud Linux 3 是一个 CentOS 系统,选择 配置方法中的【CentOS 7(使用 yum 进行安装)】:

阿里云ecs服务器安装docker

阿里云镜像 的 CentOS 7 完整命令:

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

 

准备

Alibaba Cloud Linux 3 已安装 yum-utils 等,故,省略第一步。

执行 第二步:


  # yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  Adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

此时,/etc/yum.repos.d 目录下出现一个 docker-ce.repo 文件。

阿里云ecs服务器安装docker

顺利。

执行 第三步:

# sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

顺利。

 

执行 第四步:

# yum makecache fast

出现错误:

yum makecache: error: argument timer: invalid choice: ‘fast’ (choose from ‘timer’)

更加 参考文档#1 解决:Alibaba Cloud Linux 3 是 CentOS 8,而不是 CentOS 7。

换为 执行下面的命令:

dnf makecache

顺利。

阿里云ecs服务器安装docker

yum 查找 docker:

可以看到 已经有 docker-ce、docker-ce-cli 两个包了。

阿里云ecs服务器安装docker

yum 查看 docker-ce 的信息:

#yum info docker-ce
  Last metadata expiration check: 0:01:27 ago on Wed 27 Mar 2024 11:16:53 AM CST.
  Available Packages
  Name     : docker-ce
  Epoch    : 3
  Version   : 26.0.0
  Release   : 1.el8
  Architecture : x86_64
  Size     : 27 M
  Source    : docker-ce-26.0.0-1.el8.src.rpm
  Repository  : docker-ce-stable
  Summary   : The open-source application container engine
  URL     : https://www.docker.com
  License   : ASL 2.0
  Description : Docker is a product for you to build, ship and run any application as a
        : lightweight container.
        :
        : Docker containers are both hardware-agnostic and platform-agnostic. This means
        : they can run anywhere, from your laptop to the largest cloud compute instance
        : and everything in between - and they don't require you to use a particular
        : language, framework or packaging system. That makes them great building blocks
        : for deploying and scaling web apps, databases, and backend services without
        : depending on a particular stack or provider.


执行 第五步:安装

#yum -y install docker-ce
  Last metadata expiration check: 0:04:10 ago on Wed 27 Mar 2024 11:16:53 AM CST.
  Dependencies resolved.
  省略
  Install 12 Packages
  省略
  Installed:
   containerd.io-1.6.28-3.2.el8.x86_64         docker-buildx-plugin-0.13.1-1.el8.x86_64    docker-ce-3:26.0.0-1.el8.x86_64      docker-ce-cli-1:26.0.0-1.el8.x86_64
   docker-ce-rootless-extras-26.0.0-1.el8.x86_64    docker-compose-plugin-2.25.0-1.el8.x86_64    fuse-overlayfs-1.11-1.0.1.al8.x86_64    fuse3-3.3.0-16.al8.x86_64
   fuse3-libs-3.3.0-16.al8.x86_64           libcgroup-0.41-19.2.al8.x86_64         libslirp-4.4.0-1.al8.x86_64        slirp4netns-1.2.0-2.al8.x86_64
  Complete!

顺利。

启动

执行 第六步:查看 Docker (服务器) 运行状态,并启动。

systemctl status docker# 查看状态

#systemctl start docker# 启动

启动后的状态显示为 active (running):

阿里云ecs服务器安装docker

默认 开机启动。

查看 docker 服务的进程信息:

  # ps -ef | grep docker
 
  root   302148    1 0 11:22 ?    00:00:10/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

查看其它信息:

# whereis docker
  docker: /usr/bin/docker /etc/docker /usr/libexec/docker /usr/share/man/man1/docker.1.gz
  # whereis dockerd
  dockerd: /usr/bin/dockerd /usr/share/man/man8/dockerd.8.gz
  # ls /usr/bin | grep docker
  docker
  dockerd
  dockerd-rootless-setuptool.sh
  dockerd-rootless.sh
  docker-proxy
  rootlesskit-docker-proxy

检查配置:/etc/docker 目录

此时,目录下什么也没有。

# cd /etc/docker/
  [root@--- docker]# pwd
  /etc/docker
  [root@--- docker]# ll
  total 0

查看安装的 docker 版本:Server, Client 都是 26.0.0。

# docker version
  Client: Docker Engine - Community
  Version:     26.0.0
  API version:    1.45
  Go version:    go1.21.8
  Git commit:    2ae903e
  Built:       Wed Mar 20 15:19:04 2024
  OS/Arch:      linux/amd64
  Context:      default
  Server: Docker Engine - Community
  Engine:
   Version:     26.0.0
   API version:   1.45 (minimum version 1.24)
   Go version:    go1.21.8
   Git commit:    8b79278
   Built:      Wed Mar 20 15:17:57 2024
   OS/Arch:     linux/amd64
   Experimental:   false
  containerd:
   Version:     1.6.28
   GitCommit:    ae07eda36dd25f8a1b98dfbf587313b99c0190bb
  runc:
   Version:     1.1.12
   GitCommit:    v1.1.12-0-g51d5e94
  docker-init:
   Version:     0.19.0
   GitCommit:    de40ad0

验证:运行 hello-world 镜像

执行 下面的命令:

# docker run hello-world

本地没有,先拉取,拉取后,运行。

截图:

阿里云ecs服务器安装docker

顺利。验证通过。

使用 docker images 命令,可以看到拉取了一个名为 hello-world 的镜像。

# docker images
  REPOSITORY    TAG    IMAGE ID    CREATED     SIZE
  hello-world   latest  d2c94e258dcb  10 months ago  13.3kB

 

至此,安装完毕。

本文涉及命令

yum-config-manager --add-repo ...
  sed -i ...
  yum makecache fast
  dnf makecache
  yum search docker
  yum info docker-ce
  yum -y install docker-ce
  systemctl status docker
  systemctl start docker
  docker version
  docker run hello-world
docker images

说明: dnf 就是 yum,新版本的 yum。