【Docker】1.在Ubuntu体系下安装Docker
在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 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 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 https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable": 这部门命令使用echo输出一个字符串,这个字符串包罗了Docker APT堆栈的地址和相关的GPG密钥信息。详细来说:
[*]deb : 这部门指定了堆栈的类型(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企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]