Docker 命令
Posted haorong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 命令相关的知识,希望对你有一定的参考价值。
- attach -- 登录到容器直接操作
- build -- 构建镜像
- commit -- 将容器打包成另一个镜像
- cp -- 在容器与本地系统间复制文件
- create -- 创建一个新的容器,不启动
attach
将本地终端的输入, 输出 以及 错误流 连接到容器上, (就是登录到容器中去操作)
// 使用 centos:7 镜像, 运行容器 docker run --name C7 -itd centos:7 /bin/sh 29a79dff571b58ce84a90e8ea28935a6a3c35ab707c7e48eae14b49d8ce19347 // 查看运行容器 docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 29a79dff571b centos:7 "/bin/sh" 2 minutes ago Up 2 minutes C7 // 使用 attach 登录 C7 操作 docker attach C7 sh-4.2# ls anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var sh-4.2# ps PID TTY TIME CMD 1 pts/0 00:00:00 sh 7 pts/0 00:00:00 ps
build
// docker build --help 查看帮助 // 首先创建目录, 使用 Dockerfile 创建一个镜像 mkdir /image_f cd /image_f vim Dockerfile // Dockerfile简单使用 FROM centos:7 LABEL maintainer="Tian [email protected]" RUN mkdir -pv /data/tian && echo "This is a test" > /data/tian/test // 使用 docker build 通过 Dockerfile 文件构建新的镜像 docker build -t test:1 ./ Sending build context to Docker daemon 2.048kB Step 1/3 : FROM centos:7 ---> 9f38484d220f Step 2/3 : LABEL maintainer="Tian [email protected]" ---> Running in 0f0f45d5003c Removing intermediate container 0f0f45d5003c ---> 242e247091b1 Step 3/3 : RUN mkdir -pv /data/tian && echo "This is a test" > /data/tian/test ---> Running in 9643e013f948 mkdir: created directory ‘/data‘ mkdir: created directory ‘/data/tian‘ Removing intermediate container 9643e013f948 ---> af654e159686 Successfully built af654e159686 Successfully tagged test:1 // 查看构建的镜像 docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE test 1 af654e159686 31 seconds ago 202MB // 运行镜像, 查看创建的目录等 docker run --name test --rm -it test:1 [[email protected] ~]# cat /data/tian/test This is a test
commit -- 将一个容器打包成另一个镜像
适用与在一个镜像容器中操作(安装或卸载服务等), 将操作后的容器再构建成一个镜像, 以便有需求直接使用
// 运行 test 容器中, 默认没有 vim; 使用 yum 安装 vim [[email protected] ~]# docker run --name test -it test:1 [[email protected] /]# yum -y install vim // 复制上面的 ID; 退出 test 容器, 使用 docker commit 创建新的镜像 [[email protected] /]# exit exit [[email protected] ~]# docker commit 3c43c355e9d7 test:2.0 // 运行 test:2.0 , 直接使用存在 vim 命令 [[email protected] ~]# docker run --name test2 --rm -it test:2.0 [[email protected] /]# vim ... ... ~ VIM - Vi IMproved ... ...
cp
// 查看到没有运行的容器 test, 启动test [[email protected] ~]# docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3c43c355e9d7 test:1 "/bin/bash" 8 minutes ago Exited (0) 6 minutes ago test [[email protected] ~]# docker start test test // 将 容器中的 /data/tian 中的 test 文件 复制到本地 [[email protected] ~]# docker cp test:/data/tian/test ./ [[email protected] ~]# cat test This is a test // 将本地 Dockerfile 文件上传到容器中 [[email protected] ~]# docker cp /image_f/Dockerfile test:/data/tian/ [[email protected] ~]# docker exec test cat /data/tian/Dockerfile FROM centos:7 LABEL maintainer="Tian [email protected]" RUN mkdir -pv /data/tian && echo "This is a test" > /data/tian/test
create
// 创建一个容器, 但是不启动它, 用法 docker create --help 查看, 参数用法同 docker run 差不多 // 创建 centos:6 [[email protected] ~]# docker create centos:6 // 查看容器创建, centos 6 有, 但是没有运行; [[email protected] ~]# docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6243c7c92ac1 centos:6 "/bin/bash" 2 minutes ago Created gracious_lehmann
以上是关于Docker 命令的主要内容,如果未能解决你的问题,请参考以下文章
docker启动命令,docker重启命令,docker关闭命令