80

Docker常用操作

批量删除 <none> 镜像

docker rmi $(docker images |grep 'none'|awk '{print $3}')

批量删除包含 container-name 关键词的容器

docker rm $(docker ps -a |grep 'container-name'|awk '{print $1}')

释放docker占用空间

docker volume prune

查看容器信息,启动命令等

# 查找容器全部新
docker inspect <容器名>

# 查看入口点
docker inspect -f "{{.Config.Entrypoint}}" <容器名>

# 查看网络名称
docker inspect --format '{{json .NetworkSettings.Networks}}' <容器名>
177

HomeBrew安装软件报错Failed to connect to raw.githubusercontent.com port 443: Operation timed out

原因:raw.githubusercontent.com 无法访问

  • 通过该地址,查看可以访问的IP地址 site.ip138.com
  • 设置hosts
sudo vi /etc/hosts

例如填入如下内容:

182.43.124.6 raw.githubusercontent.com
146

Docker程序配置代理

dockerd是Docker守护进程,负责管理和运行容器。当我们使用docker pull命令从Docker镜像仓库中拉取镜像时,实际上是由dockerd进程执行的。

要为dockerd设置代理,我们需要进行以下步骤:

  • 创建代理配置文件夹:首先,我们需要创建一个名为 /etc/systemd/system/docker.service.d 的文件夹,用于存放Docker服务的配置文件(.conf)
sudo mkdir -p /etc/systemd/system/docker.service.d
  • 创建代理配置文件:然后,我们需要在上述文件夹中创建一个名为proxy.conf的文件,用于配置代理设置
sudo vi /etc/systemd/system/docker.service.d/proxy.conf

加入如下内容:

[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"
  • 生效配置更改:保存并关闭文件后,我们需要重新加载systemd守护进程的配置,并重启Docker服务,以使代理配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 查看dockerd的环境变量配置
sudo systemctl show --property=Environment docker

现在可以使用指定的代理进行网络请求,包括从Docker镜像仓库中拉取镜像

参考文章:docker-ce代理

414

Ubuntu软件包及其依赖包下载脚本

前言

Ubuntu离线环境部署软件时,会需要很多依赖环境,然而内网环境没有网络,无法在线安装。所以用此脚本在有网络环境的电脑上,先将软件包下载完,再拷贝到目标主机上进行安装。

使用脚本

首先,需要赋予脚本执行权限

223

Ubuntu22.04 DockerCE 容器内使用GPU

注意只有DockerCE版本才能使用GPU
如果教程无法使用了,请参考官方地址:nvidia-container-toolkit

安装nvidia软件源

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

or

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update

安装

sudo apt install nvidia-container-toolkit

检查是否成功

sudo which nvidia-container-runtime-hook

如果找到nvidia-container-runtime-hook则安装成功了

重启Docker

sudo systemctl restart docker

测试使用

docker run --gpus all nvidia/cuda:latest nvidia-smi

显卡监控

docker run -d --gpus all -p 9200:9400 nvcr.io/nvidia/k8s/dcgm-exporter:3.3.5-3.4.0-ubuntu22.04