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 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