【Docker】在Ubuntu平台上的安装部署
写在前面
- docker作为一种部署项目的辅助工具,真是太好用了
- 需要魔法,不然无法正常运行
- 笔者环境:ubuntu22.04
具体步骤
-
更新系统包索引
sudo apt update
-
安装必要依赖包
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
(注:
vim
和net-tools
为可选工具,非必须安装) -
添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
-
添加Docker仓库到APT源
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
-
更新APT并安装Docker引擎
sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io
-
启动Docker服务并设置开机自启
sudo systemctl enable --now docker
如果不想开机自启,就手动启动
sudo systemctl start docker
检查docker运行情况
sudo systemctl status docker
若输出显示 active (running),则表示服务在本地已正常运行
-
检查Docker版本:
docker --version
输出示例:
Docker version 24.0.0, build 12345678
-
配置docker网络端口:
如果不对docker进行配置,那么docker的数据就不会从有魔法的端口过,而导致被墙,进一步导致docker部署失败,表现如下:$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 130.211.15.150:443: connect: connection refused
具体配置如下:
- 创建 Docker daemon 的 systemd 配置目录:
sudo mkdir -p /etc/systemd/system/docker.service.d
- 创建代理配置文件:
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
添加如下内容(请根据你实际使用的代理端口修改,这通常可以在你的软件配置里找到,比如我这里是7897):
[Service] Environment="HTTP_PROXY=http://127.0.0.1:7897/" Environment="HTTPS_PROXY=http://127.0.0.1:7897/" Environment="NO_PROXY=localhost,127.0.0.1,::1"
- 重新加载并重启 Docker:
sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl restart docker
- 检查配置是否生效
sudo systemctl show --property=Environment docker
如果看到你刚设置的
HTTP_PROXY
和HTTPS_PROXY
环境变量说明已经生效。
-
执行测试命令
sudo docker run hello-world
若输出包含“Hello from Docker!”等欢迎信息,说明配置成功,已经可以进行下一步的开发了。
其他可选配置
- 若需非root用户运行Docker,可将用户加入
docker
组:
之后需重新登录或重启生效。sudo usermod -aG docker $USER