Ubuntu18.04版本的Docker的坑 汇总

Ubuntu18.04版本的Docker的坑 汇总

1、Docker获取镜像报错docker: Error response from daemon **docker: dial tcp: lookup auth.docker.****io: Temporary failure in name resolution.**See ‘docker run --help’.

一、问题
docker search sameersbn
Error response from daemon: Get https://index.docker.io/v1/search?q=sameersbn&n=25: dial tcp: lookup index.docker.io on 192.168.65.1:53: read udp 192.168.65.2:45190->192.168.65.1:53: i/o timeout
➜ ~ docker pull sameersbn
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
➜ ~

二、处理

第一步:通过dig @114.114.114.114 registry-1.docker.io找到可用IP
➜ ~ dig @114.114.114.114 registry-1.docker.io
第二步:尝试修改/etc/hosts强制docker.io相关的域名解析到其它可用IP
选择可用的ip registry-1.docker.io

格式:54.236.131.166  registry-1.docker.io
保存之后重试:
docker search sameersbn

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OBBpyuYn-1602336965335)(C:\Users\KingKang\AppData\Roaming\Typora\typora-user-images\image-20201010212639188.png)]

2、出现的错误:WARNING: No memory limit support 或 WARNING: No swap limit support…

解决方法:
2.1、打开/etc/default/grub文件,添加如下内容:
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
或执行
sed  -i  's#GRUB_CMDLINE_LINUX=""#GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"#g'   /etc/default/grub
2.2、更新grub
sudo update-grub 或 sudo grub-mkconfig -o /boot/grub/grub.cfg

2.3、重启系统

sudo reboot

3、在docker pull * 时报错:/var/lib/docker/tmp/GetImageBlob***: no space left on device*

1、查看磁盘使用情况
df -h

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h0vIADS5-1602336965337)(C:\Users\KingKang\AppData\Roaming\Typora\typora-user-images\image-20201010213034010.png)]

发现/dev/mapper/ubuntu–vg-ubuntu–lv内存满了

2.扩容(LVM)磁盘
2.1.显示存在的卷组
sudo vgdisplay

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fzxy0jgu-1602336965340)(C:\Users\KingKang\AppData\Roaming\Typora\typora-user-images\image-20201010213114007.png)]

Alloc PE / Size 1024 / 4.00 GiB

Free PE / Size 3839 / <15.00 GiB

第一个是 /dev/mapper/ubuntu–vg-ubuntu–lv 这个磁盘

第二个是 这个磁盘可以扩容的大小

2.开始扩容
sudo lvextend -L 10G /dev/mapper/ubuntu--vg-ubuntu--lv
扩容到10G(扩容5G)

3.重新计算磁盘大小

sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

4、报错Docker Error response from daemon read: connection refused

在搜索镜像的时候出现这个问题,记录一下,后续待查证
[root@www ~]# docker search tomcatError response from daemon: Get https://index.docker.io/v1/search?q=tomcat&n=25: di
4.1虚拟机中添加一个DNS解析,解决问题
vim /etc/resolv.conf
4.2 添加一行:
nameserver 114.114.114.114

nameserver 127.0.0.53

v.conf


###### 4.2 添加一行:

nameserver 114.114.114.114

nameserver 127.0.0.53


[^注意这只是暂时解决问题,后面的内容会被覆盖掉]: 

### Docker 中实现分布式 GPU 计算的方法 在现代机器学习和深度学习领域,利用多个 GPU 进行分布式计算是一种常见的需求。通过 Docker 容器化技术,可以更方便地管理和部署这些复杂的分布式环境。以下是关于如何在 Docker 中配置并使用分布式 GPU 的详细介绍。 #### 1. 基础概念 分布式 GPU 计算是指将大规模的任务分解成若干子任务,在不同的 GPU 上运行,并最终汇总结果的过程。这种模式通常用于加速神经网络训练或其他高性能计算场景。为了支持这一功能,Docker 提供了 NVIDIA Container Toolkit 来管理 GPU 资源[^1]。 #### 2. 配置单机多卡的分布式 GPU 环境 对于单台服务器上的多个 GPU 卡,可以通过设置环境变量来控制进程间的通信方式以及分配给每个节点的工作负载: ```bash export NCCL_IB_DISABLE=1; export NCCL_P2P_DISABLE=1; NCCL_DEBUG=INFO \ python -m torch.distributed.launch \ --nproc_per_node=<number_of_gpus> \ --nnodes=1 \ --node_rank=0 \ --master_addr="localhost" \ --master_port=<port_number> \ train.py ``` 上述命令中的参数解释如下: - `--nproc_per_node` 表示每台设备启动多少个进程。 - `--nnodes` 是参与整个作业的所有节点数(此处为单一主机)。 - `--node_rank` 当前节点在整个集群里的编号。 - `--master_addr` 和 `--master_port` 则定义了主控地址及其监听端口号[^5]。 #### 3. 创建适合的 Dockerfile 文件 构建自定义镜像时,需确保基础操作系统已安装必要的驱动程序和支持库。例如 PaddlePaddle 文档提供了详细的 Dockerfile 编写指南,可作为模板引入个人项目中[^2]: ```dockerfile FROM nvidia/cuda:11.0-base-ubuntu18.04 RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ build-essential \ cmake \ git \ wget \ ca-certificates \ libjpeg-dev \ libpng-dev \ curl \ vim \ nano \ unzip \ ffmpeg \ sox \ swig \ python3-pip \ python3-setuptools \ python3-wheel \ locales && \ rm -rf /var/lib/apt/lists/* ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 WORKDIR /workspace/ COPY requirements.txt . RUN pip3 install --upgrade pip && \ pip3 install -r requirements.txt CMD ["bash"] ``` 此脚本会拉取预装 CUDA 工具链的基础镜像,并进一步扩展其功能性以满足特定应用的需求。 #### 4. 启动带 GPU 支持的容器实例 当完成定制化的镜像制作之后,可通过下面这条语句激活相应的硬件资源访问权限: ```bash docker run --gpus all -it <image_name> ``` 这里的关键选项 `--gpus all` 就是用来授予内部应用程序完全操控物理显卡的能力^。 另外需要注意的是,如果希望外部能够连接至该服务,则应该指定具体的转发规则而不是简单依赖 `-P` 参数自动处理一切公开接口绑定事宜;因为后者可能会带来安全风险同时也缺乏灵活性[^3]. 最后一步就是按照之前提到过的 Python API 或者框架原生工具包所提供的机制去实际执行跨节点同步操作啦! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值