Docker命令集合——构建、拉容器、进入容器、容器保存为镜像、删除镜像、启动镜像、保存打开移动镜像、挂载 Docker Dockfile docker build 构建镜像 docker run 用镜像拉容器 docker ps 查看已有容器 docker  exec 进入容器 docker commit 容器保存为镜像 docker rmi 删除镜像 docker save 保存镜像为压缩包,docker load 加载镜像

Docker命令集合——构建、拉容器、进入容器、容器保存为镜像、删除镜像、启动镜像、保存打开移动镜像、挂载
Docker
Dockfile
docker build 构建镜像
docker run 用镜像拉容器
docker ps 查看已有容器
docker  exec 进入容器
docker commit 容器保存为镜像
docker rmi 删除镜像
docker save 保存镜像为压缩包,docker load 加载镜像

就是一个环境都搭配好的容器。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Dockfile

Docker在构建时是依据Dockfile文件来构建的。对于Dockfile文件理解可参考:https://b23.tv/dUvQoZv

例如,一个简单的Dockerfile文件,如下:以centos的操作系统为基础,执行RUN后面的命令来构建起一个容器,一个软件要安装的东西相关命令都可以下载RUN后面

FROM centos
RUN yum install wget
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
RUN tar -xvf redis.tar.gz
以上执行会创建 3 层镜像。可简化为以下格式:
FROM centos
RUN yum install wget 
    && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" 
    && tar -xvf redis.tar.gz

 有个Dockfile就可以构建镜像了

docker build 构建镜像

例如,在有Dockerfile文件的目录下执行下面的命令

docker build -t mlperf-nvidia:rnn_translator .
nvidia-docker build . -t mlperf/object_detection

docker images 查看构建好的镜像

docker images

Docker命令集合——构建、拉容器、进入容器、容器保存为镜像、删除镜像、启动镜像、保存打开移动镜像、挂载
Docker
Dockfile
docker build 构建镜像
docker run 用镜像拉容器
docker ps 查看已有容器
docker  exec 进入容器
docker commit 容器保存为镜像
docker rmi 删除镜像
docker save 保存镜像为压缩包,docker load 加载镜像

docker run 用镜像拉容器

runoob@runoob:~$ docker run -it nginx:latest /bin/bash
nvidia-docker run -v /root/worktable/:/workspace -t -i --rm --ipc=host mlperf/object_detection 

docker ps 查看已有容器

docker ps查看当前正在运行的容器,对于已退出的容器,可以使用 docker ps -a 命令进行查看

Docker命令集合——构建、拉容器、进入容器、容器保存为镜像、删除镜像、启动镜像、保存打开移动镜像、挂载
Docker
Dockfile
docker build 构建镜像
docker run 用镜像拉容器
docker ps 查看已有容器
docker  exec 进入容器
docker commit 容器保存为镜像
docker rmi 删除镜像
docker save 保存镜像为压缩包,docker load 加载镜像

docker  exec 进入容器

通过docker ps第一列,查看容器id,利用id进入容器

 Docker命令集合——构建、拉容器、进入容器、容器保存为镜像、删除镜像、启动镜像、保存打开移动镜像、挂载
Docker
Dockfile
docker build 构建镜像
docker run 用镜像拉容器
docker ps 查看已有容器
docker  exec 进入容器
docker commit 容器保存为镜像
docker rmi 删除镜像
docker save 保存镜像为压缩包,docker load 加载镜像

启动容器

docker start 34f79bc43080

docker commit 容器保存为镜像

 容器都是由镜像生成的,更改了容器里的设置,镜像是不会变的,退出容器,再用镜像拉去一次,容器还是原来的容器,如果想让容器保存,可以commit保存为新的镜像,这也是创建镜像的另一种方式

docker commit dab179951c78 mlperf/objection:latest

docker rmi 删除镜像

其中 -f 为强制删除

root@runoob:~# docker rmi -f runoob/ubuntu:v4
Untagged: runoob/ubuntu:v4
Deleted: sha256:1c06aa18edee44230f93a90a7d88139235de12cd4c089d41eed8419b503072be
Deleted: sha256:85feb446e89a28d58ee7d80ea5ce367eebb7cec70f0ec18aa4faa874cbd97c73

docker save 保存镜像为压缩包,docker load 加载镜像

在对镜像传输的过程中,打包成压缩包的格式,便于传输。xxx.tar 就是打包后的文件,导入其它地方后用docker load < xxx.tar 解包

docker save ubuntu:load > /root/ubuntu.tar
docker load < ubuntu.tar