使用docker的经历

使用docker

如何使用docker,首先登录官网,找到对应版本的docker:https://www.docker.com/
可参考的教程:https://www.runoob.com/docker/docker-install-ubuntu.html
安装步骤
1)更新apt包索引
sudo apt-get update
安装apt依赖包,用于通过https来获取仓库:
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
2)添加docker官方GPG密匙:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
如果提示gpg: 找不到有效的 OpenPGP 数据。先添加pgp key,命令如下:
sudo curl -fsSL https://get.docker.com/gpg | sudo apt-key add -
更新apt 包索引
sudo apt-get update
3)安装最新版本的Docker Engine-Community and containerd或者转到下一步安装特定版本:
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$要安装特定版本的 Docker Engine-Community,请在仓库中列出可用版本,然后选择一种安装。列出您的仓库中可用的版本:
$ apt-cache madison docker-ce

docker-ce | 5:18.09.13-0ubuntu-xenial | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 5:18.09.03-0ubuntu-xenial | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.1ce3-0~ubuntu | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.0ce3-0~ubuntu | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages
4)测试docker是否安装成功:
$sudo docker run hell-world
5)安装 nvidia-docker
离线安装
5.1)
$ distribution=$(. /etc/os-release;echo I D ID IDVERSION_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
5.2)执行以下5个命令,下载5个包到当前目录,拷贝这些包到离线服务器上:
apt download libnvidia-container1
apt download libnvidia-container-tools

apt download nvidia-container-toolkit

apt download nvidia-container-runtime

apt download nvidia-docker2

5.3)
在服务器上执行,dpkg -i libnvidia* nvidia* 即可一次安装这5个包
5.4)重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
5.5)执行验证
nvidia-docker image ls
sudo docker run --runtime=nvidia --rm nvidia/cuda:10.2-base nvidia-smi,出现以下信息证明成功
±----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64 Driver Version: 440.64 CUDA Version: 10.2 |
|-------------------------------±---------------------±---------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|=++==============|
| 0 GeForce GTX 1080 Off | 00000000:01:00.0 On | N/A |
| 45% 35C P8 9W / 180W | 310MiB / 8116MiB | 0% Default |
±------------------------------±---------------------±---------------------+

±----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
±----------------------------------------------------------------------------+

6)创建容器
#sudo nvidia-docker run -tid --gpus all -p 8080:8080 -v /home/jw:/home 镜像ID
-v表示映射本地和docker文件共享
7)启动容器
#sudo nvidia-docker exec -it c89ff840330b /bin/bash
#c89ff840330b表示启动的容器的名称,可以通过sudo docker ps查看

8)在docker中配置环境
8.1)安装python
下载python:https://www.python.org/ftp/python/3.7.0/
安装依赖项
apt-get update
apt-get -y install gcc automake autoconf libtool make
apt-get -y install make*
apt-get -y install zlib*
apt-get -y install openssl libssl-dev
apt-get install sudo
apt-get -y install openssl-devel
在这3.7.0版本后进入docker环境python所在的路径,执行以下命令:
./configure --prefix=/usr/local/ --enable-optimizations
make && make install
接下来添加软链接
ln -s /usr/local/bin/python3 /usr/bin/python3
ln -s /usr/local/bin/pip3 /usr/bin/pip3
#注意,编译过程可能会出现:ModuleNotFoundError: No module named ‘_ctypes’,解决方法:sudo apt-get install libxpm-dev libxext-dev,sudo apt-get install libffi-dev
8.2)安装pytorch和torchvision
到网上下载对应torch的版本:https://pypi.tuna.tsinghua.edu.cn/simple/torch/,下载对应的torchvision版本:https://pypi.tuna.tsinghua.edu.cn/simple/torchvision/
直接pip install XXX即可安装完成,
验证是否成功:在命令终端输入python,

import torch
torch.cuda.is_available() #return True
from torch.backends import cudnn
cudnn.is_available() #return True
ok!!!
9)如果要删除镜像,使用
docker rmi 镜像ID
如果出现
#Error response from daemon: conflict: unable to remove repository reference “hello-world” (must force) - container 55e713fc196b is using its referenced image bf756fb1ae65
解决方法:
9.1.1 .停止所有的container,这样才能够删除其中的images:

docker stop $(docker ps -a -q)

9.1.2 如果想要删除所有container的话再加一个指令:

docker rm $(docker ps -a -q)

9.1.3 docker rmi xxx (xxx表示镜像id)
10)打包镜像
sudo docker commit xxx(镜像id,通过docker ps 查看)test:v1 #提交容器
sudo docker save test:v1 -o /home/test.tar #本地保存镜像
11) 异地加载镜像
sudo docker load -i test.tar
done!!!

Docker是一个开源的容器化平台,可以帮助开发者将应用程序及其依赖项打包成一个独立的容器,实现跨平台、快速部署和可移植性。我可以为您介绍一下Docker项目经历。 在我的项目经历中,我参与了一个基于Docker的微服务架构的项目。我们团队使用Docker来构建和管理各个微服务的容器。以下是我们在项目中的一些关键经验和实践: 1. 容器化应用程序:我们将每个微服务及其依赖项打包成一个独立的Docker容器。这样可以确保每个微服务在不同环境中具有相同的运行环境,避免了由于环境差异导致的问题。 2. Docker镜像管理:我们使用Docker镜像仓库来管理和分享我们的镜像。这样可以方便团队成员之间的协作,并且可以轻松地在不同环境中部署和扩展应用程序。 3. 容器编排:我们使用Docker Compose来定义和管理多个容器之间的关系和依赖。这样可以简化部署过程,并且可以轻松地扩展和管理整个应用程序。 4. 持续集成和部署:我们将Docker与持续集成和部署工具集成,实现自动化的构建、测试和部署流程。这样可以提高开发效率,并且确保每次部署都是可靠和一致的。 5. 监控和日志:我们使用Docker的日志功能来收集和管理应用程序的日志信息。同时,我们还使用Docker的监控工具来监控容器的运行状态和性能指标,以便及时发现和解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值