目录
- 一. Ubuntu系统中安装Docker
- 二. Docker中配置Ubuntu18.04镜像
- Step 1: 登录Docker
- Step 2: 拉取Ubuntu18.04镜像
- Step 3: 查看已有镜像
- Step 4: 在容器中运行带有`GPU`组件的`Ubuntu18.04`镜像并设置容器名称(名称以`transformers`为例)
- Step 5: 配置容器
- 5.1 安装Python3.8.12
- 5.2 导出原环境python库
- 5.3 将`requirements.txt`文件移入`transformers`容器中
- 5.4 在`transformers`容器中使用`pip`指令安装依赖包
- 5.5 上传容器至`Docker Hub`
- 5.5.1 为了不变动原容器,使用`export`指令导出原容器
- 5.5.2 将导出的容器快照导入作为新镜像
- 5.5.3 镜像规范化命名(用户名/镜像名)
- 5.5.4 上传至`Docker Hub`
- 5.5.5 [登录 Docker Hub 官网](https://hub.docker.com/)验证上传成功
- 补充:容器常用指令
一. Ubuntu系统中安装Docker
官网安装Docker
适用于
- Ubuntu Jammy 22.04 (LTS)
- Ubuntu Impish 21.10
- Ubuntu Focal 20.04 (LTS)
- Ubuntu Bionic 18.04 (LTS)
二. Docker中配置Ubuntu18.04镜像
Step 1: 登录Docker
sudo docker login
Step 2: 拉取Ubuntu18.04镜像
sudo docker pull ubuntu:18.04
Step 3: 查看已有镜像
sudo docker images
发现ubuntu
镜像已经出现在目录中
注:如果安装错误版本可以使用下面指令强制删除镜像
sudo docker rmi -f image-id
image-id
表示镜像的ID(上一条指令中第三个属性显示IMAGE ID)
Step 4: 在容器中运行带有GPU
组件的Ubuntu18.04
镜像并设置容器名称(名称以transformers
为例)
sudo docker run -it --gpus all --name transformers ubuntu:18.04
-t
表示为容器重新分配一个伪输入终端,通常与 -i 同时使用
-i
表示以交互模式运行容器
更多run指令介绍
进入后显示如下:
Step 5: 配置容器
此处以在容器中ubuntu18.04系统配置深度学习开发环境为例给出配置方法
5.1 安装Python3.8.12
apt update
apt install sudo
apt install vim
apt install module-init-tools kmod
apt install wget
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
tar -zxvf Python-3.8.12.tgz -C ~
cd ~/Python-3.8.12
apt install zlib1g-dev libbz2-dev libssl-dev libpcre3-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev
6
19
./configure --prefix=/usr/
make
make test
make install
ln -s /usr/bin/python3 /usr/bin/python
ln -s /usr/bin/pip3 /usr/bin/pip
mkdir /home/Documents
mkdir /home/Downloads
5.2 导出原环境python库
在原环境下激活conda
环境后导出包, pip
导出命令如下
pip list --format=freeze > requirements.txt
会导出当前环境conda
中安装的包以及包的版本,并在当前目录生成requirements.txt
文件
5.3 将requirements.txt
文件移入transformers
容器中
sudo docker cp /home/lab501/文档/requirements.txt transformers:/home/Documents/requirements.txt
注:从transformers
容器将文件移入主机的命令将上述路径调换即可,例如:
sudo docker cp transformers:/home/Documents/requirements.txt /home/lab501/文档/requirements.txt
5.4 在transformers
容器中使用pip
指令安装依赖包
pip install -r /home/Documents/requirements.txt
注:
- 用
conda
指令导出包,使用pip
安装会报错,原因在于conda
和pip
导出的txt
文件中包的表述形式不同
conda list -e > requirements.txt
例如conda
导出包的表述形式为
scipy=1.4.1=pypi_0
pip
导出包的表述形式为
scipy==1.4.1
pip
导出包使用pip
安装时也会出错,原因在于这些发生安装错误的包在原环境中都是从外链下载的,requirements.txt
文件中没有指出这些链接因此找不到对应版本。解决办法为先在requirements.txt
中删除这些发生错误的包,如果不需要安装这些包就不用重新安装,需要安装的话再单独安装这些包,或者将版本改为pip
源中存在的版本(前提是版本之间互相兼容)。
至此,使用cp
指令传入模型代码和数据到transformers
容器中即可正常运行和测试
5.5 上传容器至Docker Hub
5.5.1 为了不变动原容器,使用export
指令导出原容器
sudo docker export transformers > transformers.tar
5.5.2 将导出的容器快照导入作为新镜像
sudo cat transformers.tar | sudo docker import - deeplearning
注:导入命令中import
和deeplearning
之间有一个-
,deeplearning
为新镜像的名字(可自定义但是不能含有大写字母)
5.5.3 镜像规范化命名(用户名/镜像名)
sudo docker tag deeplearning:latest boxuguan/deeplearning
5.5.4 上传至Docker Hub
sudo docker push boxuguan/deeplearning:latest
5.5.5 登录 Docker Hub 官网验证上传成功
完结撒花,做一下镜像介绍,有需要的可以直接使用
系统: Ubuntu 18.04
(GPU版)
Python版本: Python3.8.12
配置: Pytorch 1.10.0
, transformers4.10.0
, NLTK3.7
, tensorflow-cpu2.3.0
, scipy1.4.1
, scikit-learn0.24.1
, pandas1.4.0
, numpy1.18.5
, codalab1.5.10
补充:容器常用指令
- Docker镜像索引方式
①IMAGE_REPOSITORY:TAG
(例如ubuntu:18.04
)
②IMAGE_ID
- Docker容器索引方式
①CONTAINER_NAMES
(例如transformers
)
②CONTAINER_ID
- 强制删除容器
CONTAINER_NAMES
sudo docker rm -f CONTAINER_NAMES
- 终端键入
exit
或者使用Ctrl+D
退出并关闭容器 - 使用
Ctrl+Q+P
退出容器,但不关闭容器 - 使用如下指令查看正在运行的容器
sudo docker ps
sudo docker ps -a
sudo docker start CONTAINER_NAMES
sudo docker attach CONTAINER_NAMES
sudo docker restart CONTAINER_NAMES
sudo docker kill CONTAINER_NAMES
sudo docker stop CONTAINER_NAMES
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)