Docker 命令

Posted haorong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 命令相关的知识,希望对你有一定的参考价值。

  1. attach -- 登录到容器直接操作
  2. build -- 构建镜像
  3. commit -- 将容器打包成另一个镜像
  4. cp -- 在容器与本地系统间复制文件
  5. 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常用命令

docker启动命令,docker重启命令,docker关闭命令

docker命令整理

Docker学习重点~docker命令:帮助命令镜像命令容器命令常用其他命令

容器安全之启用docker客户端命令的授权