之前使用过docker,但是忘记的差不多了,所以记录一下一些用处,主要参考是官方文档: docker command tutorials,当然还有一些大佬的。主要是简单的image以及container的常用基本操作,还有一个简单的dockerfile的示例。
docker image
建立image
# 使用dockerfile建立新的image:
docker build -t new_image:v1 .
"""
-t : images名称
-f : path to dockerfile
. :上下文可以是构建执行所在的本地路径PATH,也可以是远程URL,如Git库、tarball或文 本文件等 还可以是-。构建镜像的进程中,可以通过ADD命令将上下文中的任何文件(注意 文件必须在上下 文中)加入到镜像中。可以是PATH,如本地当前PATH为.(即demo中.)
"""
# 使用压缩包建立:
docker import file.tar image_name:v1
查看存在的images:
docker images
# or
docker image list
保存image:
docker save image>image.tar
# or
docker save -o image.tar image
删除image:
docker rmi image_name:v1
docker container
使用image生成并执行container:
docker run -it --name=container_name -v /local/mounted/path:/container/mounted/path image_name /bin/bash
"""
-it: i,让容器的标准输入保持打开(如在 Linux 终端输入命令操作);t,让 Docker 分配一 个伪终端(pseudo-tty)并绑定到容器的标准输入上;
-v: 挂载本地卷;
/bin/bash:使用shell语言bash来解释执行。
"""
查看container list:
docker container ls #查看正在运行的containers
docker container ls -a #显示包括已经停止的所有的containers。
打开关闭的container:
docker start -ia container_name
#-ia: attach STDOUT and STDIN
进入正在运行的container:
docker attach container_name #每次从container中退出到前台时,container也跟着退出了
docker exec -it container_name /bin/bash #退出container时,让container仍然在后台运行着
退出container:
docker stop container_name
# or shortcuts:
# 结束运行(end running):crl+d/ exit
# container后台运行(continue running): crl+p+q(似乎是要先按p再q)
删除container:
docker rm container_name1 container_name2 # 删除container,需要先结束container
docker rm -f container_name1 container_name2 # 强制删除container,不需要先结束。
导出container:
docker export container_name > file.tar
# or
docker export -o file.tar container_name
dockerfile
使用dockerfile安装特定版本的tensorflow:
- 基础镜像地址:tensorflow_hub
cuda相应版本的地址:
- 基础镜像地址:cuda_cudnn
tensorflow dockerfile 示例:
FROM tensorflow/tensorflow:1.11.0-devel-gpu
RUN mkdir /docker_media
RUN mkdir /docker_algo
WORKDIR /docker_algo
ADD requirements.txt /docker_algo/requirements.txt
RUN apt-get update -y
RUN apt install -y language-pack-zh-hans
ENV LANG="zh_CN.utf8"
RUN apt-get update -y
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r requirements.txt