易久IT学院

作者: admin
查看: 169|回复: 2

more +今日重磅推荐Recommend No.1

最新网络安全思维导图全集(图片+pdf+原版)

more +社区热门Forums

more +随机图赏Gallery

有干货~~kali linux信息安全零基础培训教程9G视频 (建议尽快下载,过期不补,谢谢.)有干货~~kali linux信息安全零基础培训教程9G视频 (建议尽快下载,过期不补,谢谢.)
51CTO破解视频教程 Kali Linux渗透安全防范测试技术详解21集+5G必备软件包51CTO破解视频教程 Kali Linux渗透安全防范测试技术详解21集+5G必备软件包
最新Kali渗透 六课时 配置视频 内网称霸 图片获取 HTTP信息截取 渗透安卓(手机录制)最新Kali渗透 六课时 配置视频 内网称霸 图片获取 HTTP信息截取 渗透安卓(手机录制)
13G!!!乾颐堂现任明教教主Kali Linux 2.0 免费下载 (汉化 搜狗输入法 VMware Tool13G!!!乾颐堂现任明教教主Kali Linux 2.0 免费下载 (汉化 搜狗输入法 VMware Tool
2015现任明教教主Kali Linux PPT共享乾颐盾黑客系列课程.1.局域网安全防护2015现任明教教主Kali Linux PPT共享乾颐盾黑客系列课程.1.局域网安全防护
培训班内部视频 两套思科CCIE数据中心DC V2的lab考试版本详细讲解视频[多图预览]培训班内部视频 两套思科CCIE数据中心DC V2的lab考试版本详细讲解视频[多图预览]
[绝对是自学首选]乾颐堂秦柯教主CCIE DC数据中心虚拟化vsphere完整学习视频教程54集[绝对是自学首选]乾颐堂秦柯教主CCIE DC数据中心虚拟化vsphere完整学习视频教程54集
链接已更新~Yeslab华为新手HCNA v2.0全套视频 Hans老师主讲 入门+进阶+补充【52集】链接已更新~Yeslab华为新手HCNA v2.0全套视频 Hans老师主讲 入门+进阶+补充【52集】
左光华 网上课堂 MYSQL数据库系列培训教程视频下载25集左光华 网上课堂 MYSQL数据库系列培训教程视频下载25集
[书籍] HCNA官方最新书籍(教材加指导书)入门+进阶 实验指导书[书籍] HCNA官方最新书籍(教材加指导书)入门+进阶 实验指导书
HCIE v2.0考题出题官Hans 华为HCIE高级系列视频课程pdfHCIE v2.0考题出题官Hans 华为HCIE高级系列视频课程pdf
(加密的 没法看)【批量下载】北京华尔思禹果 思科DC数据中心CCNA基础入门课程(共8集)(加密的 没法看)【批量下载】北京华尔思禹果 思科DC数据中心CCNA基础入门课程(共8集)
[深入讲解]全新Yeslab 6CCIE老余话你知 思科数据中心CCNA入门课程视频教程20集[深入讲解]全新Yeslab 6CCIE老余话你知 思科数据中心CCNA入门课程视频教程20集
乾颐堂教主 DC数据中心系列视频集合 全套思科数据中心视频学习乾颐堂教主 DC数据中心系列视频集合 全套思科数据中心视频学习

18. Docker 命令详解

[复制链接]
admin 发表于 2017-1-25 15:47:33 | 显示全部楼层 |阅读模式
查看: 169|回复: 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
# docker --help
Usage: docker [OPTIONS] COMMAND [arg...]
       docker daemon [ --help | ... ]
       docker [ -h | --help | -v | --version ]

A self-sufficient runtime for containers.

Options:

  --config=~/.docker              Location of client config files
  -D, --debug=false               Enable debug mode
  -H, --host=[]                   Daemon socket(s) to connect to
  -h, --help=false                Print usage
  -l, --log-level=info            Set the logging level
  --tls=false   Use TLS; implied by --tlsverify
  --tlscacert=~/.docker/ca.pem    Trust certs signed only by this CA
  --tlscert=~/.docker/cert.pem    Path to TLS certificate file
  --tlskey=~/.docker/key.pem      ath to TLS key file
  --tlsverify=false               Use TLS and verify the remote
  -v, --version=false             Print version information and quit

Commands:
    attach    Attach to a running container  
              --将终端依附到容器上
              1> 运行一个交互型容器
                 [root@localhost ~]# docker run -i -t centos /bin/bash
                 [root@f0a02b473067 /]#
              2> 在另一个窗口上查看该容器的状态
                 [root@localhost ~]# docker ps -a
                 CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS      ORTS       NAMES
                 d4a75f165ce6        centos              "/bin/bash"         5 seconds ago       Up 5 seconds            cranky_mahavira
              3> 退出第一步中运行的容器
                 [root@d4a75f165ce6 /]# exit
                  exit
              4> 查看该容器的状态
                 [root@localhost ~]# docker ps -a
                 CONTAINER ID        IMAGE           COMMAND           CREATED             STATUS                  ORTS    NAMES
                 d4a75f165ce6        centos          "/bin/bash"       2 minutes ago       Exited (0) 23 seconds ago        cranky_mahavira
                 可见此时容器的状态是Exited,那么,如何再次运行这个容器呢?可以使用docker start命令
              5> 再次运行该容器
                 [root@localhost ~]# docker start cranky_mahavira
                 cranky_mahavira
              6> 再次查看该容器的状态
                 [root@localhost ~]# docker ps -a
                 CONTAINER ID        IMAGE          COMMAND             CREATED             STATUS              ORTS      NAMES
                 d4a75f165ce6        centos         "/bin/bash"         6 minutes ago       Up 29 seconds                  cranky_mahavira
                 因为该容器是交互型的,但此刻我们发现没有具体的终端可以与之交互,这时可使用attach命令。
              7> 通过attach命令进行交互
                 [root@localhost ~]# docker attach cranky_mahavira
                 [root@d4a75f165ce6 /]#

    build     Build an image from a Dockerfile
              --通过Dockerfile创建镜像

    commit    Create a new image from a container's changes
              --通过容器创建本地镜像
              注意:如果是要push到docker hub中,注意生成镜像的命名
               [root@localhost ~]# docker commit centos_v1 centos:v1
               68ad49c999496cff25fdda58f0521530a143d3884e61bce7ada09bdc22337638
               [root@localhost ~]# docker push centos:v1
               You cannot push a "root" repository. Please rename your repository to <user>/<repo> (ex: <user>/centos)
               用centos:v1就不行,因为它push到docker hub中时,是推送到相应用户下,必须指定用户名。譬如我的用户名是ivictor,则新生成的本地镜像命名为:
               docker push victor/centos:v1,其中v1是tag,可不写,默认是latest
               
    cp        Copy files/folders from a container to a HOSTDIR or to STDOUT
              --在宿主机和容器之间相互COPY文件
              cp的用法如下:
              Usage:    docker cp [OPTIONS] CONTAINERATH LOCALPATH|-
      docker cp [OPTIONS] LOCALPATH|- CONTAINERATH
              需要注意的是-的用法,我在容器新建了两个文本文件,其中一个为test.txt,内容如下:
              root@839866a338db:/# cat test.txt
              456
              另一个文件为test1,txt,内容为:
              root@839866a338db:/# cat test1.txt
              helloworld
              用法一的结果如下:
              [root@localhost ~]# docker cp mysqldb:/test.tar -
              test.tar0100644000000000000000000002400012573523153010736 0ustar0000000000000000test.txt000064400000000000000000000000141257352311101              1267 0ustar  rootroot123
              789
              test1.txt0000644000000000000000000000001312573523124011353 0ustar  rootroothelloworld
              用法二的结果如下:
              [root@localhost ~]# cat test.tar |docker cp - mysqldb:/
              [root@localhost ~]# docker exec -it mysqldb /bin/bash
              root@839866a338db:/# ls
              bin   dev              entrypoint.sh  home  lib64  mnt  proc  run   selinux    sys      test.txt   tmp  var
              boot  docker-entrypoint-initdb.d  etc         lib   media  opt  root  sbin  srv    test.tar  test1.txt  usr
              --容器内新增了两个文件,test.txt和test1.txt,而这正是test.tar里打包的文件

    create    Create a new container  
              --创建一个新的容器,注意,此时,容器的status只是Created

    diff      Inspect changes on a container's filesystem
              --查看容器内发生改变的文件,以我的mysql容器为例
               [root@localhost ~]# docker diff mysqldb
               C /root
               A /root/.bash_history
               A /test1.txt
               A /test.tar
               A /test.txt
               C /run
               C /run/mysqld
               A /run/mysqld/mysqld.pid
               A /run/mysqld/mysqld.sock
               不难看出,C对应的均是目录,A对应的均是文件

    events    Get real time events from the server
              --实时输出Docker服务器端的事件,包括容器的创建,启动,关闭等。
              譬如:
              [root@localhost ~]# docker events
              2015-09-08T17:40:13.000000000+08:00 d2a2ef5ddb90b505acaf6b59ab43eecf7eddbd3e71f36572436c34dc0763db79: (from wordpress) create
              2015-09-08T17:40:14.000000000+08:00 d2a2ef5ddb90b505acaf6b59ab43eecf7eddbd3e71f36572436c34dc0763db79: (from wordpress) die
              2015-09-08T17:42:10.000000000+08:00 839866a338db6dd626fa8eabeef53a839e4d2e2eb16ebd89679aa722c4caa5f7: (from mysql) start

    exec      Run a command in a running container
              --用于容器启动之后,执行其它的任务
              通过exec命令可以创建两种任务:后台型任务和交互型任务
              后台型任务:docker exec -d cc touch 123  其中cc是容器名
              交互型任务:
              [root@localhost ~]# docker exec -i -t cc /bin/bash
              root@1e5bb46d801b:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

    export    Export a container's filesystem as a tar archive
              --将容器的文件系统打包成tar文件
              有两种方式:
              docker export -o mysqldb1.tar mysqldb
              docker export mysqldb > mysqldb.tar

    history   Show the history of an image
              --显示镜像制作的过程,相当于dockfile

    images    List images   
              --列出本机的所有镜像

    import    Import the contents from a tarball to create a filesystem image
              --根据tar文件的内容新建一个镜像,与之前的export命令相对应
             [root@localhost ~]# docker import mysqldb.tar mysql:v1
             eb81de183cd94fd6f0231de4ff29969db822afd3a25841d2dc9cf3562d135a10
             [root@localhost ~]# docker images
             REPOSITORY                 TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
             mysql    v1                  eb81de183cd9        21 seconds ago       281.9 MB

    info      Display system-wide information
              --查看docker的系统信息
              [root@localhost ~]# docker info
              Containers: 3    --当前有3个容器
              Images: 298      
              Storage Driver: devicemapper
               ool Name: docker-253:0-34402623-pool
               ool Blocksize: 65.54 kB
               Backing Filesystem: xfs
               Data file: /dev/loop0
               Metadata file: /dev/loop1
               Data Space Used: 8.677 GB     --对应的是下面Data loop file大小
               Data Space Total: 107.4 GB
               Data Space Available: 5.737 GB
               Metadata Space Used: 13.4 MB  --对应的是下面Metadata loop file大小
               Metadata Space Total: 2.147 GB
               Metadata Space Available: 2.134 GB
               Udev Sync Supported: true
               Deferred Removal Enabled: false
               Data loop file: /var/lib/docker/devicemapper/devicemapper/data
               Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
               Library Version: 1.02.93-RHEL7 (2015-01-28)
              Execution Driver: native-0.2
              Logging Driver: json-file
              Kernel Version: 3.10.0-229.el7.x86_64
              Operating System: CentOS Linux 7 (Core)
              CPUs: 2
              Total Memory: 979.7 MiB
              Name: localhost.localdomain
              ID: TFVB:BXGQ:VVOC:K2DJECE:2HNK:23B2EVF3IQ7D5:NG2V:UKNL
              WARNING: bridge-nf-call-iptables is disabled
              WARNING: bridge-nf-call-ip6tables is disabled

    inspect   Return low-level information on a container or image
              --用于查看容器的配置信息,包含容器名、环境变量、运行命令、主机配置、网络配置和数据卷配置等。

    kill      Kill a running container
              --强制终止容器
              关于stop和kill的区别,docker stop命令给容器中的进程发送SIGTERM信号,默认行为是会导致容器退出,当然,
              容器内程序可以捕获该信号并自行处理,例如可以选择忽略。而docker kill则是给容器的进程发送SIGKILL信号,该信号将会使容器必然退出。

    load      Load an image from a tar archive or STDIN
              --与下面的save命令相对应,将下面sava命令打包的镜像通过load命令导入

    login     Register or log in to a Docker registry
              --登录到自己的Docker register,需有Docker Hub的注册账号
              [root@localhost ~]# docker login
              Username: ivictor
              assword:
              Email: xxxx@foxmail.com
              WARNING: login credentials saved in /root/.docker/config.json
              Login Succeeded

    logout    Log out from a Docker registry
              --退出登录
              [root@localhost ~]# docker logout
              Remove login credentials for https://index.docker.io/v1/

    logs      Fetch the logs of a container
              --用于查看容器的日志,它将输出到标准输出的数据作为日志输出到docker logs命令的终端上。常用于后台型容器

    pause     ause all processes within a container
              --暂停容器内的所有进程,
              此时,通过docker stats可以观察到此时的资源使用情况是固定不变的,
              通过docker logs -f也观察不到日志的进一步输出。

    port      List port mappings or a specific mapping for the CONTAINER
              --输出容器端口与宿主机端口的映射情况
              譬如:
              [root@localhost ~]# docker port blog
              80/tcp -> 0.0.0.0:80
              容器blog的内部端口80映射到宿主机的80端口,这样可通过宿主机的80端口查看容器blog提供的服务

    ps        List containers  
              --列出所有容器,其中docker ps用于查看正在运行的容器,ps -a则用于查看所有容器。

    pull      ull an image or a repository from a registry
              --从docker hub中下载镜像

    push      ush an image or a repository to a registry
              --将本地的镜像上传到docker hub中
              前提是你要先用docker login登录上,不然会报以下错误
              [root@localhost ~]# docker push ivictor/centos:v1
              The push refers to a repository [docker.io/ivictor/centos] (len: 1)
              unauthorized: access to the requested resource is not authorized

    rename    Rename a container
              --更改容器的名字

    restart   Restart a running container
              --重启容器

    rm        Remove one or more containers
              --删除容器,注意,不可以删除一个运行中的容器,必须先用docker stop或docker kill使其停止。
              当然可以强制删除,必须加-f参数
              如果要一次性删除所有容器,可使用 docker rm -f `docker ps -a -q`,其中,-q指的是只列出容器的ID

    rmi       Remove one or more images   
              --删除镜像

    run       Run a command in a new container   
              --让创建的容器立刻进入运行状态,该命令等同于docker create创建容器后再使用docker start启动容器

    save      Save an image(s) to a tar archive
              --将镜像打包,与上面的load命令相对应
              譬如:
              docker save -o nginx.tar nginx

    search    Search the Docker Hub for images   
              --从Docker Hub中搜索镜像

    start     Start one or more stopped containers
              --启动容器

    stats     Display a live stream of container(s) resource usage statistics
              --动态显示容器的资源消耗情况,包括:CPU、内存、网络I/O

    stop      Stop a running container
              --停止一个运行的容器

    tag       Tag an image into a repository
              --对镜像进行重命名

    top       Display the running processes of a container
              --查看容器中正在运行的进程

    unpause   Unpause all processes within a container
              --恢复容器内暂停的进程,与pause参数相对应

    version   Show the Docker version information
              --查看docker的版本

    wait      Block until a container stops, then print its exit code
              --捕捉容器停止时的退出码
              执行此命令后,该命令会“hang”在当前终端,直到容器停止,此时,会打印出容器的退出码。

Run 'docker COMMAND --help' for more information on a command.

[/hide]
回复

使用道具 举报

咏诗 发表于 2017-2-21 21:00:34 | 显示全部楼层
大人,此事必有蹊跷!
回复 支持 反对

使用道具 举报

宇文寒涛 发表于 2017-3-7 12:38:30 | 显示全部楼层
永远有多远?你小子就给我滚多远。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|易久IT学院 ( 粤ICP备17017336号-3 )  

GMT+8, 2018-6-22 09:45 , Processed in 0.411741 second(s), 31 queries .

Powered by Yi9.Net  © 2012-2017 Comsenz Inc.

Designed by Yi9.NeT