实验室最近技术调研需要用到 Docker , 因此这里记录一下安装 docker 的流程

内容全部来源于docker 从入门到实践

安装

# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io

# 使用 APT 安装
sudo apt-get update

sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

添加软件源的 GPG 密钥

# 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
# 这里使用国内源
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 官方源
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加 docker 软件源

# 向 sources.list 中添加 Docker 软件源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 官方源
# echo \
#   "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
#   $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 以上命令会添加稳定版本的 Docker APT 镜像源,如果需要测试版本的 Docker 请将 stable 改为 test
# 若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本
# 这里使用镜像
# $ curl -fsSL test.docker.com -o get-docker.sh
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud

启动 Docker

sudo systemctl enable docker
sudo systemctl start docker

建立 Docker 用户组

sudo groupadd docker
# 将用户添加到 docker 组
sudo usermod -aG docker $USER
sudo usermod -aG docker your_name

这里解释一下这条命令

  • usermod 命令是用于修改用户帐户属性的工具
    • 用户名称: -l 允许你修改用户的登录名称。
    • 用户组: -g 用于更改用户的初始登录组。
    • home 目录: -d 选项允许你修改用户的 home 目录。
    • 用户说明: -c 选项允许你为用户添加一段说明。
    • 账户过期日期: -e 选项允许你设置用户账户的过期日期。
    • 密码过期日期: -f 选项允许你设置密码过期日期。

对应的命令

sudo usermod -l new_username old_username

sudo usermod -g new_groupname username

sudo usermod -d /new/home/directory username

sudo usermod -c "User description" username

sudo usermod -e YYYY-MM-DD username

sudo usermod -f days username
  • -aG: 这是两个选项的组合:
    • -a 表示 “append”,它会向用户添加一个新的组(在这种情况下,是将用户添加到 docker 组)。
    • -G 指定要添加用户到的组。

测试

关闭当前终端, 重新打开, 运行下面代码

docker run --rm hello-world

# 如果成功就是下面这样
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete                                                                                             Digest: sha256:4bd78111b6914a99dbc560e6a20eab57ff6655aea4a80c50b0c5491968cbc2e6
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/