在Ubuntu体系下安装Docker
通常来说直接按照官网教程的步骤安装即可,官网安装教程地址(以Ubuntu为例,不同Linux发行版的安装步骤大概存在不同):https://docs.docker.com/engine/install/ubuntu/
下面是根据官网提供的在Ubuntu 22.04 (LTS)上安装Docker的教程而整理出的步骤,可以作为一个官网教程的中文参照版来进行查阅。
1.卸载大概与Docker发生冲突的旧版包
在安装Docker Engine之前,您必要卸载所有会发生冲突的软件包。
要卸载的非官方软件包是:
- docker.io
- docker-compose
- docker-compose-v2
- docker-doc
- podman-docker
别的,Docker Engine将containerd和runc打包成了一个docker.io包,所以假如你的装备中安装了containerd和runc,你也必要卸载它们。
可以在Ubuntu中运行以下指令来卸载所有大概产生冲突的包:
- for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
复制代码 2.设置清华镜像源
在安装Docker Engine之前,您必要设置Docker的apt堆栈,以便可以从堆栈中安装和更新Docker。但是,在设置Docker的apt堆栈之前,我们最好先设置清华镜像源。Ubuntu设置清华镜像源的教程请移步到:【Linux】2.Ubuntu设置清华镜像源
3.设置Docker的apt堆栈
在新主机上初次安装Docker Engine之前,必要先为Docker设置apt堆栈,以便可以从堆栈中安装和更新Docker。
可以通过逐条实行以下命令来设置Docker的apt堆栈:
- # Add Docker's official GPG key:
- sudo apt-get update
- sudo apt-get install ca-certificates curl
- sudo install -m 0755 -d /etc/apt/keyrings
- # 这一句没有魔法在国内可能会报错,可以将链接换成清华镜像源,如:
- # sudo curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
- sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
- sudo chmod a+r /etc/apt/keyrings/docker.asc
- # Add the repository to Apt sources:
- echo \
- "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
- $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
- sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- sudo apt-get update
复制代码 以下是对这些命令的详细表明:
- sudo apt-get update
这个命令会更新本地包索引。apt-get是Ubuntu中用于管理软件包的工具,update参数会更新软件包列表,确保后续安装的软件是最新的。
- sudo apt-get install ca-certificates curl
这个命令安装ca-certificates和curl软件包。ca-certificates包罗了证书认证机构的证书,用于确保下载的软件包是可信的;curl是一个命令行工具,用于从互联网上传输数据。
- sudo install -m 0755 -d /etc/apt/keyrings
这个命令创建了一个名为keyrings的目录在/etc/apt/下,并设置了目录权限为755(即目录所有者具有读、写、实行权限,而组用户和其他用户只有读和实行权限)。install命令用于创建目录并设置权限。
- sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
这个命令使用之前安装的curl工具下载Docker的官方GPG密钥,并将下载的密钥保存为/etc/apt/keyrings/docker.asc。
-f表示假如服务器返回错误状态码,则静默失败。也就是说,假如服务器返回 4xx 或 5xx 错误码,curl 将不会体现错误消息,但仍然无法下载文件。
-s表示以静默模式运行,也就是说 curl 不会向控制台输出任何进度信息或错误消息。
-S表示假如 curl 在下载过程中出现错误,则体现错误消息。
-L表示跟随重定向,假如服务器返回重定向响应,curl 将主动跟随重定向并重新位置下载文件。
- sudo chmod a+r /etc/apt/keyrings/docker.asc
这个命令修改了上面下载的Docker密钥文件docker.asc的权限,使其可以被所有用户读取。chmod是改变文件权限的命令,a+r表示给所有用户添加读权限。
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
这个命令的作用是将Docker的APT堆栈信息添加到Ubuntu体系的/etc/apt/sources.list.d/docker.list文件中,以便后续可以通过apt-get命令来安装和更新Docker相关的软件包。
- 其中,第一部门是:echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable": 这部门命令使用echo输出一个字符串,这个字符串包罗了Docker APT堆栈的地址和相关的GPG密钥信息。详细来说:
- deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc]: 这部门指定了堆栈的类型(deb)、堆栈所支持的架构(通过dpkg --print-architecture命令获取)以及堆栈的GPG密钥文件位置(/etc/apt/keyrings/docker.asc)。
- https://download.docker.com/linux/ubuntu: 这是Docker堆栈的URL地址。
- $(. /etc/os-release && echo "$VERSION_CODENAME"): 这部门通过读取/etc/os-release文件获取当前Ubuntu体系的版本代号(如focal、bionic等),并将其拼接到堆栈地址中。
- 第二部门是:| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null: 这部门命令将上一步echo输出的字符串通过管道|通报给sudo tee命令。tee命令的作用是将输入的数据同时输出到尺度输出和指定的文件中。这里的指定文件是/etc/apt/sources.list.d/docker.list,这是一个用于存放第三方APT堆栈信息的文件。同时,> /dev/null将尺度输出重定向到空装备,即不表如今终端上。
- sudo apt-get update
再次运行sudo apt-get update,这次是为了更新刚刚添加的Docker堆栈的软件包索引。
4.安装Docker
在Ubuntu中运行以下命令即可安装最新版Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
5.设置镜像源
镜像站大概随时失效,失效后需编辑设置文件更换。以下提供的镜像链接收集自网络,时间截止至2024年11月。
- # 创建目录
- sudo mkdir -p /etc/docker
- # 写入配置文件
- sudo tee /etc/docker/daemon.json <<-'EOF'
- {
- "registry-mirrors": [
- "https://hub.xdark.top",
- "https://hub.littlediary.cn",
- "https://dockerpull.org",
- "https://hub.crdz.gq",
- "https://docker.1panel.live",
- "https://docker.unsee.tech",
- "https://docker.m.daocloud.io",
- "https://docker.kejilion.pro",
- "https://registry.dockermirror.com",
- "https://hub.rat.dev",
- "https://dhub.kubesre.xyz",
- "https://docker.nastool.de"
- ]
- }
- EOF
- # 重新加载守护进程
- sudo systemctl daemon-reload
- # 重启 docker 服务
- sudo systemctl restart docker
复制代码 6.测试安装是否成功
此处通过运行hello-world镜像来测试Docker是否安装成功。命令如下:
sudo docker run --rm hello-world
假如安装成功,会输出以下信息。假如没有设置镜像并且没有魔法则不会出现Hello from Docker!的提示,但只要能看到This message shows that your installation appears to be working correctly,说明安装成功。
- 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/
复制代码 7.将当前用户添加到 docker 组
假如不想每次实行 docker 命令都必要添加 sudo 的话,保举将当前用户添加到 docker 组,这样就可以避免每次都输入 sudo了。之所以要这样做是因为 Docker 保卫进程运行时具有 root 权限,只有 root 用户和 docker 组的成员才华访问。
- # 将当前用户添加到 docker 组
- sudo usermod -aG docker $USER
- # 如果需要从 docker 组移除用户
- # sudo gpasswd -d $USER docker
- # 重新登录以使更改生效
- # 或者运行以下命令立即生效
- newgrp docker
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |