要在Ubuntu上安装Docker,请按照以下步骤进行操作:
1、更新系统软件包列表:
sudo apt update
2、安装必要的软件包,以便允许apt通过HTTPS使用仓库:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
3、添加Docker的官方GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4、添加Docker的稳定版仓库:
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
5、更新软件包列表:
sudo apt update
6、安装Docker引擎:
sudo apt install docker-ce docker-ce-cli containerd.io
7、验证Docker是否成功安装,运行以下命令启动一个hello-world容器:
sudo docker run hello-world
如果一切正常,你将看到一条消息,表示Docker已成功安装并运行。
请注意,上述步骤是为基于64位的Ubuntu系统编写的。如果你使用其他版本的Ubuntu,可以修改第4步中的命令,将$(lsb_release -cs)
替换为你的Ubuntu版本代号。
root@ubuntu2203:~# sudo apt update Hit:1 http://cn.archive.ubuntu.com/ubuntu jammy InRelease Hit:2 http://security.ubuntu.com/ubuntu jammy-security InRelease Hit:3 http://cn.archive.ubuntu.com/ubuntu jammy-updates InRelease Hit:4 http://cn.archive.ubuntu.com/ubuntu jammy-backports InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done 14 packages can be upgraded. Run 'apt list --upgradable' to see them. root@ubuntu2203:~# sudo apt install apt-transport-https ca-certificates curl software-properties-common Reading package lists... Done Building dependency tree... Done Reading state information... Done ca-certificates is already the newest version (20230311ubuntu0.22.04.1). ca-certificates set to manually installed. software-properties-common is already the newest version (0.99.22.7). software-properties-common set to manually installed. The following NEW packages will be installed: apt-transport-https curl 0 upgraded, 2 newly installed, 0 to remove and 14 not upgraded. Need to get 196 kB of archives. After this operation, 623 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://cn.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 apt-transport-https all 2.4.9 [1,510 B] Get:2 http://cn.archive.ubuntu.com/ubuntu jammy-updates/main amd64 curl amd64 7.81.0-1ubuntu1.13 [194 kB] Fetched 196 kB in 2s (85.1 kB/s) Selecting previously unselected package apt-transport-https. (Reading database ... 208303 files and directories currently installed.) Preparing to unpack .../apt-transport-https_2.4.9_all.deb ... Unpacking apt-transport-https (2.4.9) ... Selecting previously unselected package curl. Preparing to unpack .../curl_7.81.0-1ubuntu1.13_amd64.deb ... Unpacking curl (7.81.0-1ubuntu1.13) ... Setting up apt-transport-https (2.4.9) ... Setting up curl (7.81.0-1ubuntu1.13) ... Processing triggers for man-db (2.10.2-1) ... root@ubuntu2203:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg root@ubuntu2203:~# echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | root@ubuntu2203:~# sudo apt update Get:1 https://download.docker.com/linux/ubuntu jammy InRelease [48.9 kB] Hit:2 http://cn.archive.ubuntu.com/ubuntu jammy InRelease Get:3 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages [21.2 kB] Hit:4 http://security.ubuntu.com/ubuntu jammy-security InRelease Hit:5 http://cn.archive.ubuntu.com/ubuntu jammy-updates InRelease Hit:6 http://cn.archive.ubuntu.com/ubuntu jammy-backports InRelease Fetched 70.1 kB in 1s (56.3 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 14 packages can be upgraded. Run 'apt list --upgradable' to see them. root@ubuntu2203:~# sudo apt install docker-ce docker-ce-cli containerd.io Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: docker-buildx-plugin docker-ce-rootless-extras docker-compose-plugin libslirp0 pigz slirp4netns Suggested packages: aufs-tools cgroupfs-mount | cgroup-lite The following NEW packages will be installed: containerd.io docker-buildx-plugin docker-ce docker-ce-cli docker-ce-rootless-extras docker-compose-plugin libslirp0 pigz slirp4netns 0 upgraded, 9 newly installed, 0 to remove and 14 not upgraded. Need to get 114 MB of archives. After this operation, 414 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 https://download.docker.com/linux/ubuntu jammy/stable amd64 containerd.io amd64 1.6.21-1 [28.3 MB] Get:2 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 pigz amd64 2.6-1 [63.6 kB] Get:3 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 libslirp0 amd64 4.6.1-1build1 [61.5 kB] Get:4 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 slirp4netns amd64 1.0.1-2 [28.2 kB] Get:5 https://download.docker.com/linux/ubuntu jammy/stable amd64 docker-buildx-plugin amd64 0.11.2-1~ubuntu.22.04~jammy [28.2 MB] Get:6 https://download.docker.com/linux/ubuntu jammy/stable amd64 docker-ce-cli amd64 5:24.0.5-1~ubuntu.22.04~jammy [13.3 MB] Get:7 https://download.docker.com/linux/ubuntu jammy/stable amd64 docker-ce amd64 5:24.0.5-1~ubuntu.22.04~jammy [22.9 MB] Get:8 https://download.docker.com/linux/ubuntu jammy/stable amd64 docker-ce-rootless-extras amd64 5:24.0.5-1~ubuntu.22.04~jammy [9,032 kB] Get:9 https://download.docker.com/linux/ubuntu jammy/stable amd64 docker-compose-plugin amd64 2.20.2-1~ubuntu.22.04~jammy [11.9 MB] Fetched 114 MB in 1min 34s (1,205 kB/s) Selecting previously unselected package pigz. (Reading database ... 208314 files and directories currently installed.) Preparing to unpack .../0-pigz_2.6-1_amd64.deb ... Unpacking pigz (2.6-1) ... Selecting previously unselected package containerd.io. Preparing to unpack .../1-containerd.io_1.6.21-1_amd64.deb ... Unpacking containerd.io (1.6.21-1) ... Selecting previously unselected package docker-buildx-plugin. Preparing to unpack .../2-docker-buildx-plugin_0.11.2-1~ubuntu.22.04~jammy_amd64.deb ... Unpacking docker-buildx-plugin (0.11.2-1~ubuntu.22.04~jammy) ... Selecting previously unselected package docker-ce-cli. Preparing to unpack .../3-docker-ce-cli_5%3a24.0.5-1~ubuntu.22.04~jammy_amd64.deb ... Unpacking docker-ce-cli (5:24.0.5-1~ubuntu.22.04~jammy) ... Selecting previously unselected package docker-ce. Preparing to unpack .../4-docker-ce_5%3a24.0.5-1~ubuntu.22.04~jammy_amd64.deb ... Unpacking docker-ce (5:24.0.5-1~ubuntu.22.04~jammy) ... Selecting previously unselected package docker-ce-rootless-extras. Preparing to unpack .../5-docker-ce-rootless-extras_5%3a24.0.5-1~ubuntu.22.04~jammy_amd64.deb ... Unpacking docker-ce-rootless-extras (5:24.0.5-1~ubuntu.22.04~jammy) ... Selecting previously unselected package docker-compose-plugin. Preparing to unpack .../6-docker-compose-plugin_2.20.2-1~ubuntu.22.04~jammy_amd64.deb ... Unpacking docker-compose-plugin (2.20.2-1~ubuntu.22.04~jammy) ... Selecting previously unselected package libslirp0:amd64. Preparing to unpack .../7-libslirp0_4.6.1-1build1_amd64.deb ... Unpacking libslirp0:amd64 (4.6.1-1build1) ... Selecting previously unselected package slirp4netns. Preparing to unpack .../8-slirp4netns_1.0.1-2_amd64.deb ... Unpacking slirp4netns (1.0.1-2) ... Setting up docker-buildx-plugin (0.11.2-1~ubuntu.22.04~jammy) ... Setting up containerd.io (1.6.21-1) ... Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service. Setting up docker-compose-plugin (2.20.2-1~ubuntu.22.04~jammy) ... Setting up docker-ce-cli (5:24.0.5-1~ubuntu.22.04~jammy) ... Setting up libslirp0:amd64 (4.6.1-1build1) ... Setting up pigz (2.6-1) ... Setting up docker-ce-rootless-extras (5:24.0.5-1~ubuntu.22.04~jammy) ... Setting up slirp4netns (1.0.1-2) ... Setting up docker-ce (5:24.0.5-1~ubuntu.22.04~jammy) ... Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service. Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket. Processing triggers for man-db (2.10.2-1) ... Processing triggers for libc-bin (2.35-0ubuntu3.1) ... root@ubuntu2203:~# sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 719385e32844: Pull complete Digest: sha256:926fac19d22aa2d60f1a276b66a20eb765fbeea2db5dbdaafeb456ad8ce81598 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/