码迷,mamicode.com
首页 > 其他好文 > 详细

Docker 命令

时间:2019-06-17 14:18:15      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:str   stat   etc   nta   没有   min   srv   osi   连接   

  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 tzhr1225@163.com"

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 tzhr1225@163.com"
 ---> 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
[root@ed21b42319e7 ~]# cat /data/tian/test 
This is a test

 

 

commit -- 将一个容器打包成另一个镜像


 

适用与在一个镜像容器中操作(安装或卸载服务等), 将操作后的容器再构建成一个镜像, 以便有需求直接使用

// 运行 test 容器中, 默认没有 vim; 使用 yum 安装 vim
[root@localhost ~]# docker run --name test -it test:1
[root@3c43c355e9d7 /]# yum -y install vim

// 复制上面的 ID; 退出 test 容器, 使用 docker commit 创建新的镜像
[root@3c43c355e9d7 /]# exit
exit
[root@localhost ~]# docker commit 3c43c355e9d7 test:2.0

// 运行 test:2.0 , 直接使用存在 vim 命令
[root@localhost ~]# docker run --name test2 --rm -it test:2.0
[root@42303df50598 /]# vim
... ...                                                                                                        
~                                     VIM - Vi IMproved
... ...

 

 

cp


 

// 查看到没有运行的容器 test, 启动test
[root@localhost ~]# 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
[root@localhost ~]# docker start test
test

// 将 容器中的 /data/tian 中的 test 文件 复制到本地
[root@localhost ~]# docker cp test:/data/tian/test ./
[root@localhost ~]# cat test
This is a test

// 将本地 Dockerfile 文件上传到容器中
[root@localhost ~]# docker cp /image_f/Dockerfile test:/data/tian/
[root@localhost ~]# docker exec test cat /data/tian/Dockerfile
FROM centos:7

LABEL maintainer="Tian tzhr1225@163.com"

RUN mkdir -pv /data/tian &&     echo "This is a test" > /data/tian/test

 

 

create


 

// 创建一个容器, 但是不启动它, 用法 docker create --help 查看, 参数用法同 docker run 差不多

// 创建 centos:6 
[root@localhost ~]# docker create centos:6

// 查看容器创建, centos 6 有, 但是没有运行;
[root@localhost ~]# docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6243c7c92ac1        centos:6            "/bin/bash"         2 minutes ago       Created                                 gracious_lehmann

 

Docker 命令

标签:str   stat   etc   nta   没有   min   srv   osi   连接   

原文地址:https://www.cnblogs.com/haorong/p/11010656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!