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