file:
    --bert_pretrain
    --anaconda.sh
    --Dockerfile
    --server.py
    --README.md
    --requirements.txt
    --run.sh

一、只拉一条镜像

1
sudo docker pull hub.yun.url/nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04

二、一步到位

1
docker build -t server:v1 .

一个Dockerfile例子

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#基于centos镜像
FROM centos

#维护人的信息
MAINTAINER The CentOS Project <303323496@qq.com>

#安装httpd软件包
RUN yum -y update
RUN yum -y install httpd

#开启80端口
EXPOSE 80

#复制网站首页文件至镜像中web站点下
ADD index.html /var/www/html/index.html

#复制该脚本至镜像中,并修改其权限
ADD run.sh /run.sh
RUN chmod 775 /run.sh

#当启动容器时执行的脚本文件
CMD ["/run.sh"]

Dockerfile 内容

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
FROM hub.yun.url/nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04

# 将Dockerfile同级目录下所有文件拷到docker镜像
COPY . /镜像位置/
# 将Dockerfile同级目录下某个文件拷到docker镜像
# ADD ./anaconda.sh /镜像位置/

ENV LANG C.UTF-8

WORKDIR /镜像位置/

RUN bash anaconda.sh -b -p /镜像位置/anaconda3 && rm -f anaconda.sh

ENV PATH /镜像位置/anaconda3/bin:$PATH

RUN pip install msgpack==0.6.1 -i http://mirrors.yun.url:port/pypi/web/simple --trust-host mirrors.yun.url && \
    pip install --upgrade pip -i http://mirrors.yun.url:port/pypi/web/simple --trust-host mirrors.yun.url && \
    pip install -i http://mirrors.yun.url:port/pypi/web/simple --trust-host mirrors.yun.url -r requirements.txt

# 指定映射端口
EXPOSE 5000

RUN chmod 775 /镜像位置/server.py
CMD ["python3","/镜像位置/server.py"]
# CMD ["run.sh"]

运行docker server镜像

1
sudo docker run -p hostport:containerport server:v1

三、使用gpu版

安装nvidia-docker2

1
2
docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu \
   python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

四、删除镜像

1
2
3
如果是<none>,可以使用镜像id
docker rmi 镜像名
docker rmi -f 镜像名  # force

删除<none>

1
2
3
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
docker images|grep none|awk '{print $3 }'|xargs docker rmi

五、导出、发布、导入

1
2
3
4
5
6
7
8
# 导出
sudo docker save -o server.tar server:v1
# 发布
sudo docker login
sudo docker tag server YOUR_DOCKER_ID/server
sudo docker push YOUR_DOCKER_ID/server
# 导入
sudo docker load -i server.tar

打赏

微信 微信 支付宝 支付宝
万分感谢