Docker命令集合——构建、拉容器、进入容器、容器保存为镜像、删除镜像、启动镜像、保存打开移动镜像、挂载

Docker

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

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 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  exec 进入容器

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

 

启动容器

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

 

posted on 2021-01-31 17:55  蔡军帅  阅读(555)  评论(0编辑  收藏  举报