Ubuntu22.04下Docker的安装

为什么要安装Docker,在这里就不用多说了,在我的另一篇文章里有告诉大家原因。大家可以去看看《Mac OS下Docker的安装与配置》

下面是具体的步骤:

准备条件

 1sudo apt-get remove docker docker-engine docker.io containerd runc
 2
 3sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

准备安装

 1curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
 2
 3curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
 4
 5echo "deb [arch=$(dpkg --print-architecture) 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
 6
 7echo "deb [arch=$(dpkg --print-architecture) 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
 8
 9sudo apt update
10sudo apt-get update

安装Docker

 1sudo apt install docker-ce docker-ce-cli containerd.io
 2
 3sudo docker version
 4
 5sudo systemctl status docker

安装Docker 命令补全工具

 1sudo apt-get install bash-completion
 2
 3sudo curl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker -o /etc/bash_completion.d/docker.sh
 4
 5source /etc/bash_completion.d/docker.sh

允许非Root用户执行docker 命令

当我们安装好了Docker之后,有两种方式来执行docker 命令

  • 在docker命令前加上sudo, 比如:sudo docker ps
  • sudo -i 切换至root用户,再执行docker 命令

是不是可以让当前用户在不切root,或者不加sudo 的情况下正常使用 docker 命令呢?答案是有的。

添加docker用户组

 1sudo groupadd docker

将当前用户添加到用户组

 1sudo usermod -aG docker $USER

使权限生效

 1newgrp docker

测试一下

 1docker ps -a

最后一步 更新.bashrc文件

我们需要编辑 ~/.bashrc文件,并在文件末尾增加如下一行,如果不在.bashrc文件中增加下面这一行命令

更新

关于最近国内无法访问到Docker的,首先在安装的时候,我们可以选国内阿里的源。参考上面的更新。

另外,我们需要在docker daemon 配置文件中增加国的可用的 docker hub mirror ,

找到你的daemon.json 文件,通常在 /etc/docker/daemon.json 这个位置

在daemon.json 中增加

 1"registry-mirrors": [
 2    "https://docker.m.daocloud.io"
 3  ]

通常来讲如果没有其它的配置,那么daemon.json完整的文件内容就是

 1{
 2    "registry-mirrors": [
 3        "https://docker.m.daocloud.io"
 4  ]
 5}

目前可用的国内docker hub 镜像,https://docker.m.daocloud.io。

个人笔记记录 2021 ~ 2025