Docker命令详解
<p>最近学习Docker,将docker所有命令实验了一番,特整理如下:</p><div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)"># docker </span>--<span style="color: rgba(0, 0, 0, 1)">help
Usage: docker COMMAND
docker daemon [ </span>--help |<span style="color: rgba(0, 0, 0, 1)"> ... ]
docker [ </span>-h | --help | -v | --<span style="color: rgba(0, 0, 0, 1)">version ]
A self</span>-sufficient runtime <span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> containers.
Options:
</span>--config=~/<span style="color: rgba(0, 0, 0, 1)">.docker Location of client config files
</span>-D, --debug=<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)"> Enable debug mode
</span>-H, --host=<span style="color: rgba(0, 0, 0, 1)">[] Daemon socket(s) to connect to
</span>-h, --help=<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)"> Print usage
</span>-l, --log-level=<span style="color: rgba(0, 0, 0, 1)">info Set the logging level
</span>--tls=<span style="color: rgba(0, 0, 255, 1)">false</span> Use TLS; implied by --<span style="color: rgba(0, 0, 0, 1)">tlsverify
</span>--tlscacert=~/.docker/ca.pem Trust certs signed only by <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)"> CA
</span>--tlscert=~/.docker/<span style="color: rgba(0, 0, 0, 1)">cert.pem Path to TLS certificate file
</span>--tlskey=~/.docker/<span style="color: rgba(0, 0, 0, 1)">key.pem Path to TLS key file
</span>--tlsverify=<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)"> Use TLS and verify the remote
</span>-v, --version=<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)"> Print version information and quit
Commands:
<strong><span style="color: rgba(255, 0, 0, 1)">attach Attach to a running container</span> </strong> <br></span> <span style="color: rgba(0, 0, 255, 1)">--将终端依附到容器上
</span><span style="color: rgba(128, 0, 128, 1)">1</span>><span style="color: rgba(0, 0, 0, 1)"> 运行一个交互型容器
# docker run -i -t centos /bin/<span style="color: rgba(0, 0, 0, 1)">bash
#
</span><span style="color: rgba(128, 0, 128, 1)">2</span>><span style="color: rgba(0, 0, 0, 1)"> 在另一个窗口上查看该容器的状态
# docker ps -<span style="color: rgba(0, 0, 0, 1)">a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4a75f165ce6 centos </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/bin/bash</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 128, 1)">5</span> seconds ago Up <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)"> seconds cranky_mahavira
</span><span style="color: rgba(128, 0, 128, 1)">3</span>><span style="color: rgba(0, 0, 0, 1)"> 退出第一步中运行的容器
# exit
exit
</span><span style="color: rgba(128, 0, 128, 1)">4</span>><span style="color: rgba(0, 0, 0, 1)"> 查看该容器的状态
# docker ps -<span style="color: rgba(0, 0, 0, 1)">a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4a75f165ce6 centos </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/bin/bash</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 128, 1)">2</span> minutes ago Exited (<span style="color: rgba(128, 0, 128, 1)">0</span>) <span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)"> seconds ago cranky_mahavira
可见此时容器的状态是Exited,那么,如何再次运行这个容器呢?可以使用docker start命令
</span><span style="color: rgba(128, 0, 128, 1)">5</span>><span style="color: rgba(0, 0, 0, 1)"> 再次运行该容器
# docker start cranky_mahavira
cranky_mahavira
</span><span style="color: rgba(128, 0, 128, 1)">6</span>><span style="color: rgba(0, 0, 0, 1)"> 再次查看该容器的状态
# docker ps -<span style="color: rgba(0, 0, 0, 1)">a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4a75f165ce6 centos </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/bin/bash</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 128, 1)">6</span> minutes ago Up <span style="color: rgba(128, 0, 128, 1)">29</span><span style="color: rgba(0, 0, 0, 1)"> seconds cranky_mahavira
因为该容器是交互型的,但此刻我们发现没有具体的终端可以与之交互,这时可使用attach命令。
</span><span style="color: rgba(128, 0, 128, 1)">7</span>><span style="color: rgba(0, 0, 0, 1)"> 通过attach命令进行交互
# docker attach cranky_mahavira
# <br>
<strong><span style="color: rgba(255, 0, 0, 1)">build Build an image </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">from a Dockerfile
</span></strong>-<span style="color: rgba(0, 0, 255, 1)">-</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">通过Dockerfile创建镜像<br></span>
<strong><span style="color: rgba(255, 0, 0, 1)">commit Create a </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">new image from a container's changes</span></strong>
<span style="color: rgba(0, 0, 255, 1)"> --</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">通过容器创建本地镜像</span>
注意:如果是要push到docker hub中,注意生成镜像的命名
# docker commit centos_v1 centos:v1
68ad49c999496cff25fdda58f0521530a143d3884e61bce7ada09bdc22337638
# docker push centos:v1
You cannot push a </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">root</span><span style="color: rgba(128, 0, 0, 1)">"</span> repository. Please rename your repository to <user>/<repo> (ex: <user>/<span style="color: rgba(0, 0, 0, 1)">centos)
用centos:v1就不行,因为它push到docker hub中时,是推送到相应用户下,必须指定用户名。譬如我的用户名是ivictor,则新生成的本地镜像命名为:
docker push victor</span>/<span style="color: rgba(0, 0, 0, 1)">centos:v1,其中v1是tag,可不写,默认是latest <br>
<strong><span style="color: rgba(255, 0, 0, 1)">cp Copy files</span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">/folders from a container to a HOSTDIR or to STDOUT
</span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">在宿主机和容器之间相互COPY文件</span>
cp的用法如下:
Usage: docker cp CONTAINER:PATH LOCALPATH</span>|-<span style="color: rgba(0, 0, 0, 1)">
docker cp LOCALPATH</span>|-<span style="color: rgba(0, 0, 0, 1)"> CONTAINER:PATH
</span><span style="color: rgba(0, 0, 0, 1)">如:容器mysql中/usr/local/bin/存在docker-entrypoint.sh文件,可如下方式copy到宿主机<br> # docker cp mysql:/usr/local/bin/docker-entrypoint.sh /root<br> 修改完毕后,将该文件重新copy回容器<br> # docker cp /root/docker-entrypoint.sh mysql:/usr/local/bin/ <br>
<strong><span style="color: rgba(255, 0, 0, 1)">create Create a </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">new container </span> </strong><br> <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">创建一个新的容器,注意,此时,容器的status只是Created<br><br></span> <strong> <span style="color: rgba(255, 0, 0, 1)">diff Inspect changes on a container</span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">'s filesystem</span></strong>
<span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">查看容器内发生改变的文件,以我的mysql容器为例</span>
# docker diff mysqldb
C </span>/<span style="color: rgba(0, 0, 0, 1)">root
A </span>/root/<span style="color: rgba(0, 0, 0, 1)">.bash_history
A </span>/<span style="color: rgba(0, 0, 0, 1)">test1.txt
A </span>/<span style="color: rgba(0, 0, 0, 1)">test.tar
A </span>/<span style="color: rgba(0, 0, 0, 1)">test.txt
C </span>/<span style="color: rgba(0, 0, 0, 1)">run
C </span>/run/<span style="color: rgba(0, 0, 0, 1)">mysqld
A </span>/run/mysqld/<span style="color: rgba(0, 0, 0, 1)">mysqld.pid
A </span>/run/mysqld/<span style="color: rgba(0, 0, 0, 1)">mysqld.sock
不难看出,C对应的均是目录,A对应的均是文件<br>
<strong><span style="color: rgba(255, 0, 0, 1)">events Get real time events </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">from the server
</span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">实时输出Docker服务器端的事件,包括容器的创建,启动,关闭等。</span>
譬如:
# docker events
</span><span style="color: rgba(128, 0, 128, 1)">2015</span>-<span style="color: rgba(128, 0, 128, 1)">09</span>-08T17:<span style="color: rgba(128, 0, 128, 1)">40</span>:<span style="color: rgba(128, 0, 128, 1)">13.000000000</span>+<span style="color: rgba(128, 0, 128, 1)">08</span>:<span style="color: rgba(128, 0, 128, 1)">00</span> d2a2ef5ddb90b505acaf6b59ab43eecf7eddbd3e71f36572436c34dc0763db79: (<span style="color: rgba(0, 0, 255, 1)">from</span><span style="color: rgba(0, 0, 0, 1)"> wordpress) create
</span><span style="color: rgba(128, 0, 128, 1)">2015</span>-<span style="color: rgba(128, 0, 128, 1)">09</span>-08T17:<span style="color: rgba(128, 0, 128, 1)">40</span>:<span style="color: rgba(128, 0, 128, 1)">14.000000000</span>+<span style="color: rgba(128, 0, 128, 1)">08</span>:<span style="color: rgba(128, 0, 128, 1)">00</span> d2a2ef5ddb90b505acaf6b59ab43eecf7eddbd3e71f36572436c34dc0763db79: (<span style="color: rgba(0, 0, 255, 1)">from</span><span style="color: rgba(0, 0, 0, 1)"> wordpress) die
</span><span style="color: rgba(128, 0, 128, 1)">2015</span>-<span style="color: rgba(128, 0, 128, 1)">09</span>-08T17:<span style="color: rgba(128, 0, 128, 1)">42</span>:<span style="color: rgba(128, 0, 128, 1)">10.000000000</span>+<span style="color: rgba(128, 0, 128, 1)">08</span>:<span style="color: rgba(128, 0, 128, 1)">00</span> 839866a338db6dd626fa8eabeef53a839e4d2e2eb16ebd89679aa722c4caa5f7: (<span style="color: rgba(0, 0, 255, 1)">from</span><span style="color: rgba(0, 0, 0, 1)"> mysql) start<br>
<strong><span style="color: rgba(255, 0, 0, 1)">exec Run a command </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">in a running container
</span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">用于容器启动之后,执行其它的任务</span>
通过exec命令可以创建两种任务:后台型任务和交互型任务
后台型任务:docker exec </span>-d cc touch <span style="color: rgba(128, 0, 128, 1)">123</span><span style="color: rgba(0, 0, 0, 1)">其中cc是容器名
交互型任务:
# docker exec -i -t cc /bin/<span style="color: rgba(0, 0, 0, 1)">bash
root@1e5bb46d801b:</span>/<span style="color: rgba(0, 0, 0, 1)"># ls
</span><span style="color: rgba(128, 0, 128, 1)">123</span>binbootdevetchomeliblib64mediamntoptprocrootrunsbinsrvsystmpusr<span style="color: rgba(0, 0, 255, 1)">var<br></span><strong><span style="color: rgba(255, 0, 0, 1)">
export Export a container's filesystem as a tar archive</span></strong>
<span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">将容器的文件系统打包成tar文件</span>
有两种方式:
docker export </span>-<span style="color: rgba(0, 0, 0, 1)">o mysqldb1.tar mysqldb
docker export mysqldb </span>><span style="color: rgba(0, 0, 0, 1)"> mysqldb.tar<br>
<strong><span style="color: rgba(255, 0, 0, 1)">history Show the history of an image
</span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">显示镜像制作的过程,相当于dockfile<br></span>
<span style="color: rgba(255, 0, 0, 1)"><strong>images List images</strong> <br> </span></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">列出本机的所有镜像<br></span>
<strong><span style="color: rgba(255, 0, 0, 1)">import Import the contents </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">from a tarball to create a filesystem image
</span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">根据tar文件的内容新建一个镜像,与之前的export命令相对应</span>
# docker import mysqldb.tar mysql:v1
eb81de183cd94fd6f0231de4ff29969db822afd3a25841d2dc9cf3562d135a10
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
mysql v1 eb81de183cd9 </span><span style="color: rgba(128, 0, 128, 1)">21</span> seconds ago <span style="color: rgba(128, 0, 128, 1)">281.9</span><span style="color: rgba(0, 0, 0, 1)"> MB<br>
<strong><span style="color: rgba(255, 0, 0, 1)">info Display system</span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">-wide information
</span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">查看docker的系统信息</span>
# docker info
Containers: </span><span style="color: rgba(128, 0, 128, 1)">3</span> <span style="color: rgba(0, 0, 255, 1)"> --</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">当前有3个容器</span>
Images: </span><span style="color: rgba(128, 0, 128, 1)">298</span><span style="color: rgba(0, 0, 0, 1)">
Storage Driver: devicemapper
Pool Name: docker</span>-<span style="color: rgba(128, 0, 128, 1)">253</span>:<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">34402623</span>-<span style="color: rgba(0, 0, 0, 1)">pool
Pool Blocksize: </span><span style="color: rgba(128, 0, 128, 1)">65.54</span><span style="color: rgba(0, 0, 0, 1)"> kB
Backing Filesystem: xfs
Data file: </span>/dev/<span style="color: rgba(0, 0, 0, 1)">loop0
Metadata file: </span>/dev/<span style="color: rgba(0, 0, 0, 1)">loop1
Data Space Used: </span><span style="color: rgba(128, 0, 128, 1)">8.677</span> GB <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">对应的是下面Data loop file大小</span>
Data Space Total: </span><span style="color: rgba(128, 0, 128, 1)">107.4</span><span style="color: rgba(0, 0, 0, 1)"> GB
Data Space Available: </span><span style="color: rgba(128, 0, 128, 1)">5.737</span><span style="color: rgba(0, 0, 0, 1)"> GB
Metadata Space Used: </span><span style="color: rgba(128, 0, 128, 1)">13.4</span> MB<span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">对应的是下面Metadata loop file大小</span>
Metadata Space Total: </span><span style="color: rgba(128, 0, 128, 1)">2.147</span><span style="color: rgba(0, 0, 0, 1)"> GB
Metadata Space Available: </span><span style="color: rgba(128, 0, 128, 1)">2.134</span><span style="color: rgba(0, 0, 0, 1)"> GB
Udev Sync Supported: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
Deferred Removal Enabled: </span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">
Data loop file: </span>/<span style="color: rgba(0, 0, 255, 1)">var</span>/lib/docker/devicemapper/devicemapper/<span style="color: rgba(0, 0, 0, 1)">data
Metadata loop file: </span>/<span style="color: rgba(0, 0, 255, 1)">var</span>/lib/docker/devicemapper/devicemapper/<span style="color: rgba(0, 0, 0, 1)">metadata
Library Version: </span><span style="color: rgba(128, 0, 128, 1)">1.02</span>.<span style="color: rgba(128, 0, 128, 1)">93</span>-RHEL7 (<span style="color: rgba(128, 0, 128, 1)">2015</span>-<span style="color: rgba(128, 0, 128, 1)">01</span>-<span style="color: rgba(128, 0, 128, 1)">28</span><span style="color: rgba(0, 0, 0, 1)">)
Execution Driver: native</span>-<span style="color: rgba(128, 0, 128, 1)">0.2</span><span style="color: rgba(0, 0, 0, 1)">
Logging Driver: json</span>-<span style="color: rgba(0, 0, 0, 1)">file
Kernel Version: </span><span style="color: rgba(128, 0, 128, 1)">3.10</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">229</span><span style="color: rgba(0, 0, 0, 1)">.el7.x86_64
Operating System: CentOS Linux </span><span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)"> (Core)
CPUs: </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
Total Memory: </span><span style="color: rgba(128, 0, 128, 1)">979.7</span><span style="color: rgba(0, 0, 0, 1)"> MiB
Name: localhost.localdomain
ID: TFVB:BXGQ:VVOC:K2DJ:LECE:2HNK:23B2:LEVF:P3IQ:L7D5:NG2V:UKNL
WARNING: bridge</span>-nf-call-iptables <span style="color: rgba(0, 0, 255, 1)">is</span><span style="color: rgba(0, 0, 0, 1)"> disabled
WARNING: bridge</span>-nf-call-ip6tables <span style="color: rgba(0, 0, 255, 1)">is</span><span style="color: rgba(0, 0, 0, 1)"> disabled<br>
<strong><span style="color: rgba(255, 0, 0, 1)">inspect Return low</span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">-level information on a container or image
</span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">用于查看容器的配置信息,包含容器名、环境变量、运行命令、主机配置、网络配置和数据卷配置等。<br></span>
<strong><span style="color: rgba(255, 0, 0, 1)">kill Kill a running container
</span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">强制终止容器</span>
关于stop和kill的区别,docker stop命令给容器中的进程发送SIGTERM信号,默认行为是会导致容器退出,当然,
容器内程序可以捕获该信号并自行处理,例如可以选择忽略。而docker kill则是给容器的进程发送SIGKILL信号,该信号将会使容器必然退出。<br>
<strong><span style="color: rgba(255, 0, 0, 1)">load Load an image </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">from a tar archive or STDIN
</span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">与下面的save命令相对应,将下面sava命令打包的镜像通过load命令导入<br></span>
<strong><span style="color: rgba(255, 0, 0, 1)">login Register or log </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">in to a Docker registry
</span></strong><span style="color: rgba(255, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">--登录到自己的Docker register,需有Docker Hub的注册账号</span></span><span style="color: rgba(0, 0, 0, 1)">
# docker login
Username: ivictor
Password:
Email: xxxx@foxmail.com
WARNING: login credentials saved </span><span style="color: rgba(0, 0, 255, 1)">in</span> /root/.docker/<span style="color: rgba(0, 0, 0, 1)">config.json
Login Succeeded<br>
<strong><span style="color: rgba(255, 0, 0, 1)">logout Log </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">out from a Docker registry
</span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">退出登录</span>
# docker logout
Remove login credentials </span><span style="color: rgba(0, 0, 255, 1)">for</span> https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">index.docker.io/v1/<br></span>
<strong><span style="color: rgba(255, 0, 0, 1)"> logs Fetch the logs of a container
</span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">用于查看容器的日志,它将输出到标准输出的数据作为日志输出到docker logs命令的终端上。常用于后台型容器<br></span>
<strong><span style="color: rgba(255, 0, 0, 1)">pause Pause all processes within a container
</span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">暂停容器内的所有进程,</span>
此时,通过docker stats可以观察到此时的资源使用情况是固定不变的,
通过docker logs </span>-<span style="color: rgba(0, 0, 0, 1)">f也观察不到日志的进一步输出。<br>
<strong><span style="color: rgba(255, 0, 0, 1)">port List port mappings or a specific mapping </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">for the CONTAINER
</span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">输出容器端口与宿主机端口的映射情况</span>
譬如:
# docker port blog
</span><span style="color: rgba(128, 0, 128, 1)">80</span>/tcp -> <span style="color: rgba(128, 0, 128, 1)">0.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.0</span>:<span style="color: rgba(128, 0, 128, 1)">80</span><span style="color: rgba(0, 0, 0, 1)">
容器blog的内部端口80映射到宿主机的80端口,这样可通过宿主机的80端口查看容器blog提供的服务<br>
<strong><span style="color: rgba(255, 0, 0, 1)">ps List containers<br></span></strong></span> <span style="color: rgba(0, 0, 255, 1)">--列出所有容器,其中docker ps用于查看正在运行的容器,ps -</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">a则用于查看所有容器。</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">pull Pull an image or a repository </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">from a registry
</span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">从docker hub中下载镜像</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">push Push an image or a repository to a registry
</span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">将本地的镜像上传到docker hub中</span>
前提是你要先用docker login登录上,不然会报以下错误
# docker push ivictor/<span style="color: rgba(0, 0, 0, 1)">centos:v1
The push refers to a repository (len: <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">)
unauthorized: access to the requested resource </span><span style="color: rgba(0, 0, 255, 1)">is</span><span style="color: rgba(0, 0, 0, 1)"> not authorized<br>
<strong><span style="color: rgba(255, 0, 0, 1)">rename Rename a container
</span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">更改容器的名字</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">restart Restart a running container <br></span></strong></span> <span style="color: rgba(0, 0, 255, 1)"> --</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">重启容器</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">rm Remove one or more containers</span>
</strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">删除容器,注意,不可以删除一个运行中的容器,必须先用docker stop或docker kill使其停止。</span>
当然可以强制删除,必须加</span>-<span style="color: rgba(0, 0, 0, 1)">f参数
如果要一次性删除所有容器,可使用 docker rm </span>-f `docker ps -a -q`,其中,-<span style="color: rgba(0, 0, 0, 1)">q指的是只列出容器的ID<br>
<strong><span style="color: rgba(255, 0, 0, 1)">rmi Remove one or more images <br></span></strong></span> <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">删除镜像</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">run Run a command </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">in a new</span></strong><span style="color: rgba(0, 0, 0, 1)"><strong><span style="color: rgba(255, 0, 0, 1)"> container</span></strong> <br> <span style="color: rgba(0, 0, 255, 1)">--让创建的容器立刻进入运行状态,该命令等同于docker create创建容器后再使用docker start启动容器</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)"> save Save an image(s) to a tar archive
</span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">将镜像打包,与上面的load命令相对应</span>
譬如:
docker save </span>-<span style="color: rgba(0, 0, 0, 1)">o nginx.tar nginx<br>
<strong><span style="color: rgba(255, 0, 0, 1)">search Search the Docker Hub </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">for images</span></strong> <br> <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">从Docker Hub中搜索镜像</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">start Start one or more stopped containers
</span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">启动容器</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)"> stats Display a live stream of container(s) resource usage statistics
</span></strong></span><span style="color: rgba(0, 0, 255, 1)">--动态显示容器的资源消耗情况,包括:CPU、内存、网络I/</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">O</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">stop Stop a running container</span> </strong><br></span> <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">停止一个运行的容器</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">tag Tag an image into a repository
</span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">对镜像进行重命名</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">top Display the running processes of a container
</span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">查看容器中正在运行的进程</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">unpause Unpause all processes within a container
</span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">恢复容器内暂停的进程,与pause参数相对应</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">version Show the Docker version information</span> </strong><br></span> <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">查看docker的版本</span><br>
<span style="color: rgba(255, 0, 0, 1)">wait Block until a container stops, then print its exit code
</span></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">捕捉容器停止时的退出码</span>
执行此命令后,该命令会“hang”在当前终端,直到容器停止,此时,会打印出容器的退出码。
Run </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">docker COMMAND --help</span><span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(0, 0, 255, 1)">for</span> more information on a command.</pre>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/ivictor/p/4791274.html
頁:
[1]