docker实战常见案例

说明

docker的常用命令和基本用法在之前写的docker ubuntu 实战中有介绍。这篇主要记录docker的常见应用案例,结合场景贴出代码段,实战性更强。

下面的每一个标题都是一个应用场景。

离线环境更新docker容器

问题:因为开发环境的docker安装在内网隔离环境中,docker中安装的软件和框架不能进行在线升级,不能在线打补丁

解决:

1 先对外网docekr的容器进行补丁升级等一系列操作,保证现有的容器达到最新并且稳定的版本

1)安装paddle可视化训练模块:这次的更新安装了paddlepaddle的训练可视化模块,可以通过动态图观察mAP随着训练次数的变化

2)安装pycocotools模块:因为pycocotools安装涉及c++编译问题,所以前置要安装c++编译工具。

yum -y install gcc gcc-c++ kernel-devel //安装gcc、c++编译器以及内核文件
./pip install pycocotools

2 关闭当前容器

查看当前运行的容器,并关闭它

docker ps
docker stop CONTAINER_ID

我们看到当前环境中有一个镜像,一个被关闭的容器

3 当前容器打包成新的镜像

docker export CONTAINER_ID -o newimagename.tar

4 将镜像从外网导入到内网,重新导入镜像

5 将镜像装载到docker中

docker import ./paddle_wtd03.tar paddlewtdv2    #装载镜像

一般镜像装载完成,都会有一个镜像的编码,这时候如果查看目前的镜像,发现会有两个,一个是之前用的镜像,另一个是新装载的镜像

6 查看现有的docker镜像,如果必要的话重命名docker镜像

对现有的镜像重命名,从名字上增加版本控制

docker tag IMAGE_ID imagename:version

7 将镜像映射成容器,docker run

关闭内网环境中现有的容器,并移除容器

docker stop CONTAINER_ID
docker rm CONTAINER_ID

将新的镜像映射成容器,指定容器与物理服务器的交换地址,启动容器

docker run -v /disk2/opt/notebooks:/opt/notebooks -p 8888:8888 -d paddlewtd:v2 /opt/anaconda/bin/jupyter-lab --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser --allow-root
docker ps
docker logs CONTAINER_ID

8 查看正在运行的容器,已经装载的镜像,删除多余的镜像

docker ps
docker image ls
docker rmi IMAGE_ID    //删除镜像

 

 

你可能感兴趣的:(ubuntu,docker)