Docker
docker
构建
网路不好的情况下,先pull基础镜像,再build
常用命令
docker ps
docker stop <容器名或id>
docker exec -it <容器名或id> /bin/sh
#进入shell
docker logs [容器ID或容器名]
docker logs -f [容器ID或容器名] #实时输出文件名
给docker服务设置代理 (docker pull时执行)
推荐的使用 systemd 的 drop-in 文件来配置,因为它在大多数现代 Linux 发行版上是标准的做法,并且可以更好地控制 Docker 服务。
假设使用本地代理 127.0.0.1:7890,你需要将 http_proxy 和 https_proxy 这两个环境变量指向它。
推荐方法:使用 Systemd Drop-in 文件 (适用于大多数 Linux)
这种方法通过为 Docker 服务设置环境变量来实现代理配置。
步骤 1: 创建配置目录
为 Docker 服务创建一个 systemd drop-in 目录:
Bash
步骤 2: 创建代理配置文件
创建一个名为 http-proxy.conf 的文件,并添加代理配置。
Bash
文件内容 (http-proxy.conf):
Ini, TOML
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1,::1"
-
HTTP_PROXY: 用于 HTTP 连接。
-
HTTPS_PROXY: 用于 HTTPS 连接(Docker Hub 使用 HTTPS)。注意: 即使代理是 HTTP 代理,也需要将
HTTPS_PROXY设置为http://127.0.0.1:7890,因为这是告诉 Docker daemon 通过这个代理转发 HTTPS 请求。 -
NO_PROXY: 排除不需要走代理的地址。
127.0.0.1和localhost必须保留,以确保本地 Docker 通信不受影响。
步骤 3: 重新加载 systemd 配置并重启 Docker
应用更改并重启 Docker 服务:
Bash
步骤 4: 验证配置
检查配置是否已成功加载:
Bash
你应该能看到输出中包含你设置的代理环境变量。
nvidia-docker
检查是否安装
安装NVIDIA Docker
运行以下命令安装NVIDIA Docker:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
查询是否可以
权限问题
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
方法一:将当前用户添加到 docker 组:
然后注销并重新登录,或者重启系统以使更改生效。
2. 使用 sudo 运行 Docker 命令
如果你不想将用户添加到 docker 组,可以使用 sudo 来运行 Docker 命令:
docker compose
command not found: docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version #理论上就可以输出了
或者用新的 docker compose (没有-)