一、安装docker-19.03

1.查看ubuntu内核

uname -r

2.安装docker

sudo apt-get install docker.io

3.查看版本

docker version 或 docker -v

4.启动

sudo systemctl unmask docker.service
sudo systemctl unmask docker.socket
sudo systemctl start docker.service

5.查看状态

sudo systemctl status docker

二、修改docker源:

sudo gedit /etc/docker/daemon.json

添加以下内容:(使用阿里源)

{
    "registry-mirrors":[
         "https://emasu4pd.mirror.aliyuncs.com",
         "http://hub-mirror.c.163.com"
    ],
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

三 、docker中使用gpu:

方法一: 使用nvidia-container-runtime:

1.添加库: Link

curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update

新建script.sh,写入上述内容,执行sh script.sh。

2. 安装nvidia-container-runtime:

sudo apt-get install nvidia-container-runtime
systemctl restart docker #重启docker

3.测试验证:(启动命令中添加参数:–gpus all 或 --gpus "device=1"指定):

docker run --gpus all --rm nvidia/cuda:11.0-base nvidia-smi
方法二: 使用nvidia-docker2:

1.添加库: Link

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
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

新建script.sh,写入上述内容,执行sh script.sh。

2. 安装nvidia-container-runtime及查看:

sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

3.测试验证:(启动命令中添加参数:–runtime=nvidia):

docker run --runtime=nvidia --rm nvidia/cuda:11.0-base nvidia-smi

测试nvidia-docker

以上便完成docker和nvidia-docker的安装。

四、修改镜像root密码:

当需要更新镜像或安装文件时,需要在root下执行。

#运行容器
docker run --rm --gpus all -p 8000:3000 -it --ipc=host  <REPOSITORY:TAG> /bin/bash
#在容器运行的基础上,打开另一个终端窗口,执行一下命令
docker exec -it --user root <CONTAINER ID> /bin/bash
#修改root密码:
passwd root
#在镜像中完成操作后,打开另一个终端,commit镜像
docker commit -m "change passwd root" -a "Amelia" <CONTAINER ID> <REPOSITORY:TAG> #<REPOSITORY:TAG>可自己指定

五、将本地环境打包成docker镜像:

过程参考

文件组成:

Dockerfile
library.txt

1. 将项目的依赖库进行导出:

#激活环境
source activate torch1.7
#执行
pip freeze > library.txt

2.创建Dockerfile,编写内容如下:

#基础镜像
FROM python:3.8.5 
#创建用户目录
RUN useradd -m workspace
#处理指定目录以及其子目录下的所有文件
RUN chown -R workspace /home/workspace
#工作目录
USER workspace
WORKDIR /home/workspace
#将库文件拷贝到工作路径
#COPY library.txt /home/workspace/library.txt
ADD library.txt /home/workspace
#安装指定的库
RUN pip install -r library.txt

3.使用Dockerfile创建镜像:

docker build -t test:v1 .

4.测试启动容器:

docker run --rm -p 8000:3000 -it --ipc=host test:v1 /bin/bash

六、docker常用命令:

#启动
systemctl start docker
#重启docker服务
sudo service docker restart
#关闭
sudo systemctl stop docker
#卸载
sudo apt-get remove docker docker-engine docker-ce docker.io
命令操作
镜像列表查看docker images
删除镜像docker rmi IMAGE ID
容器列表查看docker ps -a
删除容器docker rm -f CONTAINER ID
搜索镜像docker search 镜像 //也可以从官网搜索:https://hub.docker.com/
dockerHub镜像库中拉取镜像docker pull 镜像
拷贝本地文件到容器中去docker cp 本地目录 CONTAINER ID:容器目录
在基础容器中做完修改后保存镜像的命令docker commit -m “说明” -a “作者” CONTAINER ID 镜像名字:标签 //自己指定(镜像名字:标签)[[REPOSITORY]:[TAG]]只能用小写字母
查看镜像的详细信息docker inspect IMAGE ID
镜像保存docker save -o path/name.tar IMAGE //容器列表中的IMAGE
镜像加载docker load -i path/name.tar
启动已存在的容器docker attach CONTAINER ID
容器日志查看docker logs -f NAMES//容器名
查看某个容器docker ps I grep NAMES
重启某个容器docker restart NAMES
停止某个容器docker stop NAMES
进入某个容器docker exec -it NAMES bash
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐