文章目录
前言
随着深入了解,发现有些时候,真的不得不使用Docker,它带来的简便性/易上手性是所有程序都给不了的。
这边我们也一起学习一下Docker的安装以及Docker Compose又是什么?
什么是 Docker ?
Docker 是一个快捷、轻便的系统级虚拟化技术,开发者和系统管理员可以使用它构建具备所有必要依赖项的应用程序,并将其作为一个包发布。
Docker 与其他如 VMWare 、Xen 、以及 VirtualBox 等工具的虚拟化方式不同,每个虚拟机不需要单独的客户操作系统。
所有的 Docker 容器有效地共享同一个主机系统内核。每个容器都在同一个操作系统中的隔离用户空间中运行。
Docker 容器可以在任何 Linux 版本上运行。比如说你使用 Fedora ,我用 Ubuntu 。我们能相互开发、共享并分发 Docker 镜像。
你无需担心操作系统、软件以及自定义设置,任何事都不用担心。只要我们的主机安装了 Docker ,就能持续开发。简言之,Docker 能够在任何地方运行!
通俗地说,Docker 镜像是一个描述容器应该如何表现的文件,而 Docker 容器是 Docker 镜像的运行(或停止)状态。
Docker 依赖项
为了安装并配置 Docker ,你的系统必须满足下列最低要求:
-
64 位 Linux 或 Windows 系统
-
如果使用 Linux ,内核版本必须不低于 3.10
-
能够使用 sudo 权限的用户
-
在你系统 BIOS 上启用了 VT(虚拟化技术)支持 on your system BIOS(参考: 如何查看 CPU 支持 虚拟化技术(VT))
-
你的系统应该联网
在 Linux ,在终端上运行以下命令验证内核以及架构详细信息:
uname -a
输出样例:
Linux VM-4-13-ubuntu 5.15.0-70-generic #77-Ubuntu SMP Tue Mar 21 14:02:37 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
正如上面你看到的那样,我的 Ubuntu 系统内核版本是 5.15.0-70-generic
并且系统架构是 64 位(x86_64 x86_64 x86_64 GNU/Linux)
。
内核版本需要不低于最低要求的版本,并且是 64 位机器。这样不会有任何问题,我们能顺利安装并使用 Docker 。
请注意你使用哪一个 Ubuntu 系统不重要。并且你使用 Ubuntu 桌面或服务器版本,亦或者其他 Ubuntu 变种如 Lubuntu 、Kubuntu 、Xubuntu ,都不重要。
只要你的系统内核版本不低于 3.10 ,并且是 64 位系统,Docker 都会正常运行。
安装 Docker
更新 Ubuntu
sudo apt update
sudo apt upgrade
添加 Docker 库
首先,安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
然后,运行下列命令添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
添加 Docker 官方库:
echo "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
使用命令更新 Ubuntu 源列表:
sudo apt update
安装 Docker
运行下列命令安装最新 Docker CE:
sudo apt install docker-ce docker-ce-cli containerd.io
当然你也可以安装其他版本 Docker 。运行下列命令检查可以安装的 Docker 版本:
apt-cache madison docker-ce
输出样例:
docker-ce | 5:23.0.4-1~ubuntu.22.04~jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:23.0.3-1~ubuntu.22.04~jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:23.0.2-1~ubuntu.22.04~jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:23.0.1-1~ubuntu.22.04~jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:23.0.0-1~ubuntu.22.04~jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.24~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.23~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.22~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.21~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.20~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.19~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.18~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
你可以挑选上面列表中的任何版本进行安装。例如,安装 5:23.0.4-1~ubuntu.22.04~jammy 这个版本,运行:
sudo apt install docker-ce=5:23.0.4-1~ubuntu.22.04~jammy docker-ce-cli=5:23.0.4-1~ubuntu.22.04~jammy containerd.io
安装完成后,运行如下命令验证 Docker 服务是否在运行:
systemctl status docker
你会看到类似下面的输出:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-04-25 16:12:10 CST; 39min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 10357 (dockerd)
Tasks: 8
Memory: 25.4M
CPU: 471ms
CGroup: /system.slice/docker.service
└─10357 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Apr 25 16:12:10 VM-4-13-ubuntu dockerd[10357]: time="2023-04-25T16:12:10.016226134+08:00" level=info msg="[core] [Channel #4] Channel Connectivity change to CONNECTING" module=grpc
Apr 25 16:12:10 VM-4-13-ubuntu dockerd[10357]: time="2023-04-25T16:12:10.016503235+08:00" level=info msg="[core] [Channel #4 SubChannel #5] Subchannel Connectivity change to READY" module=grpc
Apr 25 16:12:10 VM-4-13-ubuntu dockerd[10357]: time="2023-04-25T16:12:10.016530074+08:00" level=info msg="[core] [Channel #4] Channel Connectivity change to READY" module=grpc
Apr 25 16:12:10 VM-4-13-ubuntu dockerd[10357]: time="2023-04-25T16:12:10.141082247+08:00" level=info msg="Loading containers: start."
Apr 25 16:12:10 VM-4-13-ubuntu dockerd[10357]: time="2023-04-25T16:12:10.466524502+08:00" level=info msg="Loading containers: done."
Apr 25 16:12:10 VM-4-13-ubuntu dockerd[10357]: time="2023-04-25T16:12:10.498571594+08:00" level=info msg="Docker daemon" commit=cbce331 graphdriver=overlay2 version=23.0.4
Apr 25 16:12:10 VM-4-13-ubuntu dockerd[10357]: time="2023-04-25T16:12:10.498701000+08:00" level=info msg="Daemon has completed initialization"
Apr 25 16:12:10 VM-4-13-ubuntu dockerd[10357]: time="2023-04-25T16:12:10.543578309+08:00" level=info msg="[core] [Server #7] Server created" module=grpc
Apr 25 16:12:10 VM-4-13-ubuntu systemd[1]: Started Docker Application Container Engine.
Apr 25 16:12:10 VM-4-13-ubuntu dockerd[10357]: time="2023-04-25T16:12:10.549181997+08:00" level=info msg="API listen on /run/docker.sock"
Docker 服务已启动并运行!
如果没有运行,运行以下命令运行 Docker 服务:
sudo systemctl start docker
使 Docker 服务在每次重启时自动启动:
sudo systemctl enable docker
可以使用以下命令查看已安装的 Docker 版本:
sudo docker version
作为非 root 用户运行 Docker (选做)
默认情况下,Docker 守护进程绑定到 Unix 套接字而不是 TCP 端口。由于 Unix 套接字由 root 用户拥有,Docker 守护程序将仅以 root 用户身份运行。因此,普通用户无法执行大多数 Docker 命令。
如果你想要在 Linux 中作为非 root 用户运行 Docker ,参考下方链接:
如何在 Linux 中作为非 root 用户运行 Docker
我个人不这样做也不推荐你这么做。如果你不会在互联网上暴露你的系统,那没问题。然而,不要在生产系统中以非 root 用户身份运行 Docker 。
什么是 Docker Compose?
Docker Compose 是一个可用于定义和运行多容器 Docker 应用程序的工具。使用 Compose,你可以使用 Compose 文件来配置应用程序的服务。然后,使用单个命令,你可以从配置中创建和启动所有服务。
安装 Docker Compose
常规安装
apt install docker-compose docker-compose-plugin
pip安装
pip install docker-compose
最后
安装完成后,只需运行相关程序的命令即可实现自动安装部署。
中间省去了很多很多麻烦的事情。