Linux 环境下配置 Docker

loskyertt Unknown

1、Docker 配置

1.1 安装 Docker

  • 安装方式一(推荐):

通过yay直接安装(全局安装):

1
yay -Sy docker docker-compose

docker-compose可选安装,它可以通过配置文件Dockerfile来构建镜像。

  • 安装方式二:

通过conda安装(局部安装,可全局使用):

首先需要创建虚拟环境用于存储安装的dockerdocker-compose

1
conda create --name docker python=3.12

Python版本可自己选择。

1
conda install docker docker-compose -c conda-forge

这里的-c conda-forge一定要加,默认的conda.org源没有docker

安装好的dockerdocker-compose是在该路径下:
~/.conda/envs/docker/bin/docker
~/.conda/envs/docker/bin/docker-compose

1.2 docker 基本操作

1.2.1 docker 服务

  • 启动docker服务

    1
    sudo systemctl start docker
  • 关闭docker服务

    1
    sudo systemctl stop docker.service docker.socket
  • 检查docker服务状态

    1
    sudo systemctl status docker
  • 开机自启动设置

    1
    sudo systemctl enable --now docker

1.2.2 添加用户到 docker 组

为了避免每次运行docker命令时都需要使用 sudo,可以将当前用户添加到 docker 组:

1
sudo usermod -aG docker $USER

然后,重新登录以使更改生效,或者重新加载用户组信息:

登录:

1
newgrp docker

退出:

1
exit

可能需要重启系统来让配置生效。

1.3 代理配置(一定要配置)

1.创建docker相关的systemd目录,这个目录下的配置将覆盖docker的默认配置:

1
sudo mkdir -p /etc/systemd/system/docker.service.d

2.新建配置文件:

1
kate /etc/systemd/system/docker.service.d/proxy.conf

将以下内容复制到proxy.conf中:

1
2
3
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"

这里需要根据自己实际的代理端口填写。

3.如果自己建了私有的镜像仓库,需要docker绕过代理服务器直连,那么配置NO_PROXY变量:

1
2
3
4
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=your-registry.com,10.10.10.10,*.example.com"

多个NO_PROXY变量的值用逗号分隔,而且可以使用通配符(*),极端情况下,如果NO_PROXY=*,那么所有请求都将不通过代理服务器。

4.重新加载配置文件,重启docker

1
sudo systemctl daemon-reload
1
sudo systemctl restart docker

5.检查确认环境变量已经正确配置:

1
sudo systemctl show --property=Environment docker

像输出以下内容就成功了:

1
Environment=HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890

1.4 命令简化配置

以下推荐加到.bashrc或者.zshrc中。

  1. 格式化查看容器:
    1
    docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"

命令简化:

1
alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
  1. 查看网络配置:
    1
    docker inspect --format='{{.HostConfig.NetworkMode}}' <容器名/容器ID>

命令简化:

1
alias din='docker inspect --format='{{.HostConfig.NetworkMode}}''
  • Title: Linux 环境下配置 Docker
  • Author: loskyertt
  • Created at : 2024-07-20 16:21:15
  • Updated at : 2024-11-13 03:07:10
  • Link: https://redefine.ohevan.com/2024/07/20/Linux-Docker/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments