Docker基本使用

1、在已有的docker镜像的基础上加入一些自己的东西

有时候我们从docker hub或者别人那边拿到docker镜像,我们自己跑一个容器,然后在容器里面我们更改了一些东西,比如docker里面是ubuntu的系统,我们apt-get install 了一个ssh,现在我们要更新一下这个镜像文件方便以后我们自己使用或者分享使用,这时候就要在一个基础的docker镜像的基础上更新一个新的docker镜像。

有两种办法:1、docker file

2、commit

网上其实说到更新镜像,大多数人给的教程都是用docker file,呃…因为我现在还在一个基础使用阶段,就是说比如搭建深度学习环境,我从docker hub上pull下来一个好用的镜像,然后我在容器里面自己安装了一些新的包,现在想要更新一下这个镜像,我反而不太喜欢用docker file。。因为我又不是一下子都想好自己要用到哪些包,这样的方式总让我觉得有些不舒服,当然用docker file的方法肯定是更加适合团队之间的,比较统一,方便管理。

这里记录一下用commit来更新镜像的方法。

1 # 查看docker镜像
2 docker images

Docker基本使用

1 # 查看docker容器
2 docker ps -a

Docker基本使用

1 # 根据上面那个容器id更新镜像
2 docker commit -m "zxs My version of tf-gpu-py3 update1" -a "Xiaosong Zhou" 4229d621d51c zxsdocker/tensorflow:tf1.11-gpu-py3
3 # -m 是更新的信息
4 # -a 是作者
5 # 4229d621d51c 是容器ID
6 # zxsdocker/tensorflow是镜像仓库名,可以写一个新的名字
7 # tf1.11-gpu-py3是tag信息
8 docker images

Docker基本使用

然后从这个镜像启动容器

1 # 这个,因为我还不是很懂这个nvidia-docker,不知道是不是每次都要指定--runtime=nvidia才行
2 docker run --runtime=nvidia -it -v /home/zxs_files/docker/tf-gpu:/root/tf-gpu --name zxs_tf_gpu_py3 zxsdocker/tensorflow:tf1.11-gpu-py3 /bin/bash
3 # 然后exit退出来一下。。。中文字符集问题
4 docker exec -it zxs_tf_gpu_py3 env LANG=C.UTF-8 bash

Docker镜像保存为文件及从文件导入镜像

做好了镜像之后,把镜像保存成一个文件,在另外的电脑上能比较方便的导入使用。

1 # 保存
2 docker save -o tf_image_gpu_py3_zxs.tar zxsdocker/tensorflow:tf1.11-gpu-py3
3 # 加载
4 docker load --input 文件

这篇文章写得比较好,很多Docker的用法:

https://www.cnblogs.com/lsgxeva/p/8746644.html