资讯详情

容器自动化:Docker基础

云计算专题容器自动化


一,Docker简介、功能特性及应用场景

1.1 Docker简介

  • Docker它是一个开源应用容器引擎,允许开发者将其应用程序打包并依赖于包装到可移植容器中,然后发布到任何一个 流行的Linux虚拟化也可以在机器上实现。容器完全采用沙箱机制,彼此之间没有接口。
  • 一个完整的Docker由以下部分组成:
    • Docker Client 客户端
    • Docker Daemon 守护进程
    • Docker Image 镜像
    • Docker Container 容器

1.2 Docker功能特性

  • 与应用隔离环境(系统、网络、文件系统)
  • 解决依赖和版本问题
  • 易于分发,开箱即用
  • 快速扩展节点和容器
  • 镜像制作简单方便,管理方便

(1)隔离

  • 通过cgroup(使用隔离和跟踪资源)& namespace(组间隔离)实现轻量级过程隔离
  • 对于容器中的运行过程,我独占一个系统
  • 容器间网络、文件等资源相互隔离

(2)版本和依赖

  • 在传统模式下,需要在不同的机器上部署多个不同环境或版本的项目,部署和后期维护管理复杂繁琐。
  • 使用Docker,一台机器可以通过多个不同版本或环境的镜像同时运行而不干扰,部署和后期维护简单方便 便。

(3)分发使用

  • 通过导入、导出、上传到镜像仓库等方式分发镜像
  • 在启动了Docker直接使用系统docker run无需特殊配置即可启动镜像。

(4)扩容

  • 容器扩容简单方便
  • 扩容节点只需安装和启动Docker即可

(5)镜像制作

  • 镜像的灵魂Dockerfile
  • 使用Dockerfile控制指令
  • 基于Linux命令,易于理解,快速启动
  • 易于定制和修改

1.3 Docker应用场景

  • Docker常用于以下场景:
    • web自动包装和发布应用;
    • 发布自动化测试和持续集成;
    • 例如,应用服务MySQL,Redis等,通过Docker实现快速部署;
    • k8s私有云

1.3.1 场景1:多版本、多类系统和软件

二,Docker的安装

2.1 安装环境

最小化安装Centos7.5

关闭防火墙和selinux

2.2 版本选择

  • Docker
    • 17.03后版本变成Docker CE
  • Docker CE
    • 社区版,Community Edition
  • Docker EE
    • 企业版,Enterprise Edition
    • 收费版强调安全,提供一些先进的特点和商业支持

2.3 Docker安装:标准版

特别提示: centos7.5在搭建本地yum仓库只需修改 CentOS-Media.repo 文件可以(其他文件不需要在子目录中) 确保虚拟机能正常上网

2.4 Docker安装:CE社区版

首先清理掉yum安装的docker标准版 这里有两种方式

特别提示: yum回退安装在工作中非常有用, 接下来我们安装Docker的CE社区版

三,Docker的操作命令

3.0 添加docker国内镜像源

在开始学习docker之前,我们首先要更改一下docker默认源镜像下载地址(默认从国外下载,非常慢),我们需要 添加国内源地址

 
  1. [root@docker ~]# cat /etc/docker/daemon.json
  2. {
  3. "registry-mirrors":[ "https://registry.docker-cn.com" ]
  4. }
  5. [root@docker ~]# systemctl daemon-reload
  6. [root@docker ~]# systemctl restart docker

3.1 Docker命令:search

用于从docker官方公共镜像仓库寻找镜像

(1)查看Docker Hub上公开的centos镜像

 
  1. [root@docker ~]# docker search centos
  2. NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  3. centos The official build of CentOS. 7246 [OK]
  4. kasmweb/centos-7-desktop CentOS 7 desktop for Kasm Workspaces 21
  5. continuumio/centos5_gcc5_base 3
  6. dokken/centos-7 CentOS 7 image for kitchen-dokken 2
  7. dokken/centos-stream-9 1
  8. couchbase/centos7-systemd centos7-systemd images with additional debug… 1 [OK]
  9. spack/centos7 CentOS 7 with Spack preinstalled 1
  10. datadog/centos-i386 0
  11. dokken/centos-8 CentOS 8 image for kitchen-dokken 0
  12. dokken/centos-6 CentOS 6 image for kitchen-dokken 0
  13. spack/centos6 CentOS 6 with Spack preinstalled 0
  14. dokken/centos-stream-8 0
  15. bitnami/centos-extras-base 0
  16. corpusops/centos centos corpusops baseimage 0
  17. couchbase/centos-72-java-sdk 0
  18. couchbase/centos-72-jenkins-core 0
  19. fnndsc/centos-python3 Source for a slim Centos-based Python3 image… 0 [OK]
  20. bitnami/centos-base-buildpack Centos base compilation image 0 [OK]
  21. cochbase/centos-69-sdk-build 0
  22. couchbase/centos-69-sdk-nodevtoolset-build 0
  23. couchbase/centos-70-sdk-build 0
  24. spack/centos-stream 0
  25. galaxy/centos-wheel 0
  26. galaxy/centos32 0
  27. galaxy/centos32-wheel
  28. 特别说明:
  29. Name:镜像的名字
  30. DESCRIPTION:描述
  31. STARS:星级(越高越好)
  32. OFFICIAL:是否是官方发布的
  33. AUTOMATED:是否自动化的

(2)查找星级多于100的centos镜像

 
    
  1. [root@docker ~]# docker search centos -f stars=100
  2. NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  3. centos The official build of CentOS. 7246 [OK]
  4. 特别提示:
  5. /:符号用于分割作者名称和镜像名称
  6. ansible/centos7-ansible:ansible是作者名称,centos7-ansible是镜像名称

(3)多条件查找--filter

 
    
  1. #查找官方发布的,星级大于100的centos镜像
  2. [root@docker ~]# docker search centos -f is-official=true -f stars=100
  3. NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  4. centos The official build of CentOS. 7246 [OK]

3.2 Docker命令:pull

用于从Docker Hub上下载公有镜像

 
    
  1. #查找符合条件的nginx镜像
  2. [root@docker ~]# docker search nginx -f is-official=true -f stars=100
  3. NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  4. nginx Official build of Nginx. 17116 [OK]
  5. #下载目标nginx镜像
  6. [root@docker ~]# docker pull nginx
  7. Using default tag: latest
  8. latest: Pulling from library/nginx
  9. 461246efe0a7: Pull complete
  10. a96aaf9a9ec3: Pull complete
  11. 650d8b758441: Pull complete
  12. b138da793ac8: Pull complete
  13. bb1705539683: Pull complete
  14. b9ed43dcc388: Pull complete
  15. Digest: sha256:db345982a2f2a4257c6f699a499feb1d79451a1305e8022f16456ddc3ad6b94c
  16. Status: Downloaded newer image for nginx:latest #下载成功latest是标记(tag)
  17. docker.io/library/nginx:latest

3.3 Docker命令:images

用于本地镜像的查看

 
    
  1. [root@docker ~]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. nginx latest 41b0e86104ba 6 days ago 142MB
  4. 特别说明:
  5. REPOSITORY:镜像仓库(下边罗列的都是本地已有镜像名称)
  6. TAG:镜像的标记(为了区分同名镜像)
  7. IMAGES ID:镜像的ID号
  8. CREATED:此镜像的创建时间
  9. SIZE:此镜像的大小

3.4 Docker命令:build

用于本地自定义镜像的构建,需要创建Dockerfile文件

 
    
  1. #创建Dockerfile文件的存储目录
  2. [root@docker ~]# mkdir -p /root/dockerfile/lib/centos/7
  3. [root@docker ~]# cd /root/dockerfile/lib/centos/7
  4. #创建docker.sh脚本
  5. [root@docker ]# vim docker.sh
  6. [root@docker ]# cat docker.sh
  7. #!/bin/bash
  8. while true
  9. do
  10. echo "welcome"
  11. sleep 5
  12. done
  13. #创建Dockerfile配置文件,文件名称必须为Dockerfile,第一个字母必须大写
  14. [root@docker ]# vim Dockerfile
  15. [root@docker ]# cat Dockerfile
  16. FROM centos #从centos源镜像的基础上进行构建
  17. LABEL MAINTATNER="Mr.chen.com" #作者的名称
  18. RUN ln -sfv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #RUN:在镜像构建过程中
  19. 运行命令
  20. ADD docker.sh /home/test/ #从本地系统中把docker.sh文件添加到构建中的镜像的/home/test/目
  21. 录下
  22. RUN chmod +x /home/test/docker.sh #在镜像构建过程中运行命令
  23. CMD ["/home/test/docker.sh"] #构建镜像完成时,最后执行的命令
  24. #根据Dockfile配置文件构建一个自定义镜像
  25. [root@docker ]# docker build -t Mr.chen/centos7:1 . #-t 指定镜像名称 :1 设定镜
  26. 像的tag标记
  27. Sending build context to Docker daemon 3.072kB
  28. Step 1/6 : FROM centos
  29. ---> 49f7960eb7e4
  30. Step 2/6 : LABEL MAINTATNER="Mr.chen.com"
  31. ---> Running in 2537e36ba496
  32. Removing intermediate container 2537e36ba496
  33. ---> 1a932d4c7762
  34. Step 3/6 : RUN ln -sfv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  35. ---> Running in 7890b38ae948
  36. '/etc/localtime' -> '/usr/share/zoneinfo/Asia/Shanghai'
  37. Removing intermediate container 7890b38ae948
  38. ---> 82c412669879
  39. Step 4/6 : ADD docker.sh /home/test/
  40. ---> 8f092336a175
  41. Step 5/6 : RUN chmod +x /home/test/docker.sh
  42. ---> Running in b034c6f7439f
  43. Removing intermediate container b034c6f7439f--> f6587dbd78dd
  44. Step 6/6 : CMD ["/home/test/docker.sh"]
  45. ---> Running in cd13edcd6632
  46. Removing intermediate container cd13edcd6632
  47. ---> 58af3ad826d2
  48. uccessfully built 58af3ad826d2 #构建成功
  49. Successfully tagged Mr.chen/centos7:1
  50. [root@docker ]# docker images
  51. REPOSITORY TAG IMAGE ID CREATED SI
  52. ZE
  53. Mr.chen/centos7 1 58af3ad826d2 57 seconds ago 20
  54. 0MB #TAG为1
  55. centos 7 49f7960eb7e4 4 weeks ago 20
  56. 0MB
  57. hello-world latest e38bc07ac18e 2 months ago 1.
  58. 85k

3.5 Docker命令:run

运行一个本地镜像

 
    
  1. [root@docker ~]# docker run -itd centos /bin/bash #让容器的输入保持打开,为docker分配一个伪终端,
  2. b8a6ac4e13a1bca4e3642a624de0fdd201e185f6320af18a9625b0b893670ca9
  3. [root@docker ~]# docker ps -a
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. b8a6ac4e13a1 centos "/bin/bash" 9 seconds ago Up 7 seconds dreamy_wu
  6. 7109f7b39f4a centos "/bin/bash -c 'echo …" 39 seconds ago Exited (0) 38 seconds ago practical_easley
  7. 9f647a9cb15d nginx "/docker-entrypoint.…" 2 minutes ago Exited (0) 2 minutes ago wizardly_spence

3.6 Docker命令:ps

查看已经运行的镜像的进程

 
    
  1. [root@docker ~]# docker ps #只能看到运行中的容器
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. [root@docker ~]# docker ps -a #可以看到所有容器的状态(包含退出的exit)
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. e2ee0242ca3e centos "/bin/bash" About an hour ago Created goofy_jones
  6. 89750ab3bb2f nginx "/docker-entrypoint.…" About an hour ago Exited (127) 32 seconds ago vigorous_cori
  7. ca53f13e3410 nginx "/docker-entrypoint.…" About an hour ago Created brave_noyce
  8. 特别提示:
  9. ocker run:运行一个指定的images id
  10. -d:放在后台运行
  11. -i:可以进行命令交互
  12. -t:制作一个伪终端用于登陆
  13. 58af3ad826d2:镜像的ID,可以简写成58a

3.7 Docker命令:attach

从本地系统中切入到某个STATUS状态是UP的镜像进程里

 
    
  1. [root@docker ~]# docker attach 476 #启动虚拟终端才能使用
  2. [root@4769c1c506e5 /]#

3.8 Docker命令:stop

用于停止一个正在运行着的容器进程

 
    
  1. [root@docker ~]# docker stop 70d4abf #停止容器
  2. 70d4abf
  3. [root@docker ~]# docker ps
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. [root@docker ~]# docker ps -a
  6. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  7. 70d4abfbcaba nginx "/docker-entrypoint.…" About a minute ago Exited (0) 10 seconds ago fervent_hoover

3.9 Docker命令:start

用于启动一个已经停止了的容器进程

 
    
  1. [root@docker ~]# docker start 70d4abf #启动容器
  2. 70d4abf
  3. [root@docker ~]# docker ps -a
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. 70d4abfbcaba nginx "/docker-entrypoint.…" 34 seconds ago Up 6 seconds 80/tcp fervent_hoover
  6. [root@docker ~]# docker ps
  7. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  8. 70d4abfbcaba nginx "/docker-entrypoint.…" 44 seconds ago Up 16 seconds 80/tcp fervent_hoover

3.10 Docker命令:rm

用于删除一个已经停止了的容器进程

 
    
  1. [root@docker ~]# docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. e2ee0242ca3e centos "/bin/bash" About an hour ago Created goofy_jones
  4. 89750ab3bb2f nginx "/docker-entrypoint.…" About an hour ago Exited (127) 32 seconds ago vigorous_cori
  5. ca53f13e3410 nginx "/docker-entrypoint.…" About an hour ago Created brave_noyce
  6. [root@docker ~]# docker rm e2ee02 89750 ca53f #注意运行中的容器进程需要先stop,才能删除
  7. e2ee02
  8. 89750
  9. ca53f
  10. [root@docker ~]# docker ps -a
  11. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

3.11 Docker命令:rmi

用于删除一个未用作容器启动的本地镜像

 
    
  1. [root@docker ~]# docker rmi 05d3c1e2d0c1 #但要注意,被用作容器启动的镜像是不能删除的(需先rm删除容器进程)
  2. Untagged: centos/systemd:latest #强行删除被容器进程占用的镜像也是不行的
  3. Untagged: centos/systemd@sha256:09db0255d215ca33710cc42e1a91b9002637eeef71322ca641947e65b7d53b58
  4. Deleted: sha256:05d3c1e2d0c166b1654f86a5beed614065450b186a94e4761120b3458b45509d
  5. Deleted: sha256:09ddbd0d56275f5387b4ab8501b9be4e4e839d56a76b98ef8f18a32c0070b5a0
  6. Deleted: sha256:071d8bd765171080d01682844524be57ac9883e53079b6ac66707e192ea25956
  7. [root@docker ~]# docker rmi -f centos #-f 强制删除(即便被占用)
  8. Untagged: centos:latest

3.12 Docker命令:commit

将一个更改过的容器进程的容器状态保存为一个新的镜像(可以实现容器版本控制)

 
    
  1. [root@docker ~]# docker commit b8a6 nginx:v1.3 将容器保存至镜像
  2. sha256:4a1b21daa45f30d37abc5b1f62793ad3f2b7b39cb99eb82294717f2aeccc6148
  3. [root@docker ~]# docker images
  4. REPOSITORY TAG IMAGE ID CREATED SIZE
  5. nginx v1.3 4a1b21daa45f 8 seconds ago 231MB

3.13 Docker命令:exec

用于从本地操作系统上直接向容器进程发布执行命令并返回结果

 
    
  1. [root@docker ~]# docker exec -it b8a6 /bin/bash
  2. [root@b8a6ac4e13a1 /]# ip a
  3. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  4. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  5. inet 127.0.0.1/8 scope host lo
  6. valid_lft forever preferred_lft forever
  7. 14: eth0@if15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
  8. link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
  9. inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 #默认网络命名空间
  10. valid_lft forever preferred_lft forever
  11. [root@b8a6ac4e13a1 /]# uname -r #查看内核版本
  12. 3.10.0-862.el7.x86_64
  13. [root@b8a6ac4e13a1 /]# cat /etc/redhat-release #查看系统内型
  14. CentOS Linux release 8.4.2105
  15. 特别提示:
  16. ctrl+P+Q 退出容器,容器不会停止(后台运行),日常操作(必会)

3.14 Docker命令:cp

用于在容器进程和本地系统之间复制文件

 
    
  1. [root@docker ~]# docker attach 840
  2. [root@8403555dbd45 /]# ls
  3. bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
  4. [root@8403555dbd45 /]# cd root
  5. [root@8403555dbd45 ~]# echo 123 >1.txt
  6. [root@8403555dbd45 ~]# cat 1.txt
  7. 123
  8. [root@8403555dbd45 ~]# read escape sequence
  9. [root@docker ~]# docker cp 840:/root/1.txt .
  10. [root@docker ~]# ls
  11. 1.txt anaconda-ks.cfg nginx1.12 nginx1.12.tar nginx1.2.cont ping.txt
  12. [root@docker ~]# echo 321 >./2.txt
  13. [root@docker ~]# cat 2.txt
  14. 321
  15. [root@docker ~]# docker cp ./2.txt 840:/
  16. [root@docker ~]# docker exec 840 cat /2.txt
  17. 321

3.15 Docker命令:create

用于创建一个容器进程,但是并不启动它

 
    
  1. [root@docker ~]# docker create -it nginx #创建一个镜像的容器进程,但不直接启动
  2. Unable to find image 'nginx:latest' locally
  3. latest: Pulling from library/nginx
  4. Digest: sha256:db345982a2f2a4257c6f699a499feb1d79451a1305e8022f16456ddc3ad6b94c
  5. Status: Downloaded newer image for nginx:latest
  6. ca53f13e341064e47d258c331bfad33ebcafe644d10dfe1325b81eb238e500c0
  7. [root@docker ~]# docker create -it nginx /bin/bash #用/bin/bash解释器运行nginx镜像
  8. Unable to find image 'nginx:latest' locally
  9. latest: Pulling from library/nginx
  10. 461246efe0a7: Already exists
  11. a96aaf9a9ec3: Already exists
  12. 650d8b758441: Already exists
  13. b138da793ac8: Already exists
  14. bb1705539683: Already exists
  15. b9ed43dcc388: Already exists
  16. Digest: sha256:db345982a2f2a4257c6f699a499feb1d79451a1305e8022f16456ddc3ad6b94c
  17. Status: Downloaded newer image for nginx:latest
  18. c93cdab5076efa5c2118d755a9b108defce0bd0bb4bd2f3ef0eafd212db657a1
  19. [root@docker ~]# docker ps
  20. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  21. [root@docker ~]# docker ps -a
  22. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  23. ca53f13e3410 nginx "/docker-entrypoint.…" 31 seconds ago Created brave_noyce
  24. 特别注意:
  25. -i 让容器的输入保持打开
  26. -t 为docker分配一个伪终端

3.16 Docker命令:diff

查看容器进程与源镜像做对比,发生了改变的文件或文件夹

 
    
  1. [root@docker ~]# docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED STA
  3. TUS PORTS NAMES
  4. [root@docker ~]# docker images
  5. REPOSITORY TAG IMAGE ID CREATED SIZ
  6. E
  7. Mr.chen/centos 2 5620f1cb9e8e 11 hours ago 200
  8. MB
  9. Mr.chen/centos7 1 58af3ad826d2 32 hours ago 200
  10. MB
  11. centos 7 49f7960eb7e4 4 weeks ago 200
  12. MB
  13. centos latest 49f7960eb7e4 4 weeks ago 200
  14. MB
  15. [root@docker ~]# docker run -d -it 5620f1cb9e8e #启动一个镜像的容器进程
  16. ab06a9794e45ca35ab5f4594d630ecbe3527814233cc004d4deb8aafde2906f8
  17. [root@docker ~]# docker ps -a
  18. CONTAINER ID IMAGE COMMAND CREATED STA
  19. TUS PORTS NAMES
  20. ab06a9794e45 5620f1cb9e8e "/bin/bash" 3 seconds ago Up
  21. 2 seconds confident_snyder
  22. [root@docker ~]# docker attach ab06a9794e45 #切入容器进程
  23. [root@ab06a9794e45 /]# cd /yunjisuan/
  24. [root@ab06a9794e45 yunjisuan]# pwd
  25. /yunjisuan
  26. [root@ab06a9794e45 yunjisuan]# touch {1..10} #在容器进程中创建文件
  27. [root@ab06a9794e45 yunjisuan]# ls
  28. 1 10 2 3 4 5 6 7 8 9
  29. [root@ab06a9794e45 yunjisuan]# exit #退出容器进程
  30. exit
  31. [root@docker ~]# docker diff ab06a9794e45 #查看容器进程的变化
  32. C /root/.bash_history
  33. C /yunjisuan
  34. A /yunjisuan/1
  35. A /yunjisuan/10
  36. A /yunjisuan/2
  37. A /yunjisuan/3
  38. A /yunjisuan/4
  39. A /yunjisuan/5
  40. A /yunjisuan/6
  41. A /yunjisuan/7
  42. A /yunjisuan/8
  43. A /yunjisuan/9

3.17 Docker命令:events

实时监测容器的变化情况

 
    
  1. root@docker ~]# docker events
  2. 2022-07-18T09:11:23.938963932+08:00 network connect
  3. c03e38ce8c0e54511899c4ad34b37adaa6339b68e44478072b7d9a4129afdb7a (container=ab06a9
  4. 794e45ca35ab5f4594d630ecbe3527814233cc004d4deb8aafde2906f8, name=bridge, type=brid
  5. ge)
  6. 2022-07-18T09:11:24.096366168+08:00 container start
  7. ab06a9794e45ca35ab5f4594d630ecbe3527814233cc004d4deb8aafde2906f8 (MAINTATNER=Mr.ch
  8. en.com, image=5620f1cb9e8e, name=confident_snyder, org.label-schema.schema-version
  9. == 1.0 org.label-schema.name=CentOS Base Image org.label-schema.vendor=Cen
  10. tOS org.label-schema.license=GPLv2 org.label-schema.build-date=20180531)
  11. 前台时时监控容器的变化若要检测,需要另外再起一个窗口进行操作

3.18 Docker命令:export

将容器进程的文件系统导出到本地

 
    
  1. [root@docker ~]# docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. b8a6ac4e13a1 5d0da3dc9764 "/bin/bash" 51 minutes ago Up 51 minutes dreamy_wu
  4. 7109f7b39f4a 5d0da3dc9764 "/bin/bash -c 'echo …" 52 minutes ago Exited (0) 52 minutes ago practical_easley
  5. 9f647a9cb15d nginx "/docker-entrypoint.…" 53 minutes ago Exited (0) 53 minutes ago wizardly_spence
  6. [root@docker ~]# docker stop b8a6 #先停止容器
  7. b8a6
  8. [root@docker ~]# docker ps -a
  9. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  10. b8a6ac4e13a1 5d0da3dc9764 "/bin/bash" 54 minutes ago Exited (0) 2 minutes ago dreamy_wu
  11. 7109f7b39f4a 5d0da3dc9764 "/bin/bash -c 'echo …" 55 minutes ago Exited (0) 55 minutes ago practical_easley
  12. 9f647a9cb15d nginx "/docker-entrypoint.…" 57 minutes ago Exited (0) 57 minutes ago wizardly_spence
  13. [root@docker ~]# docker export b8a6 >./nginx1.2.cont #导出容器到本地(最好加上.cont后缀,以便识别)
  14. [root@docker ~]# ls
  15. anaconda-ks.cfg nginx1.12 nginx1.12.tar nginx1.2.cont ping.txt

3.19 Docker命令:import

用于将export导出的文件系统创建为一个镜像

 
    
  1. [root@docker ~]# cat ./nginx1.2.cont | docker import - nginx:v2 #导入本地容器镜像快照
  2. sha256:cae4bd959d319cb87b6e4178db8d0f04a9cc15541a9cbee71460792b7ca746a5
  3. [root@docker ~]# docker images
  4. REPOSITORY TAG IMAGE ID CREATED SIZE
  5. nginx v2 cae4bd959d31 15 seconds ago 231MB
  6. 特别提示:
  7. 如果将服务器中的容器导出成容器镜像文件后,当我们需要使用该容器镜像文件的时候,
  8. 不要使用docker load(该指令可以导入但是会导致启动异常)
  9. 需要执行以下指令:
  10. cat 容器文件名称 | docker inport - name:tag

3.20 Docker命令:history

用于查看一个镜像的历史修改纪录

 
    
  1. [root@docker ~]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZ
  3. E
  4. Mr.chen/centos 3 745606e08231 4 seconds ago 200
  5. MB
  6. Mr.chen/centos 2 5620f1cb9e8e 13 hours ago 200
  7. MB
  8. Mr.chen/centos7 1 58af3ad826d2 34 hours ago 200
  9. MB
  10. centos 7 49f7960eb7e4 4 weeks ago 200
  11. MB
  12. centos latest 49f7960eb7e4 4 weeks ago 200
  13. MB
  14. [root@docker ~]# docker history 745606e08231
  15. IMAGE CREATED CREATED BY SIZE COM
  16. MENT
  17. 745606e08231 6 minutes ago 200MB Imp
  18. orted from -
  19. [root@docker ~]# docker history 5620f1cb9e8e
  20. IMAGE CREATED CREATED BY
  21. SIZE COMMENT
  22. 5620f1cb9e8e 13 hours ago /bin/bash
  23. 27B
  24. 58af3ad826d2 34 hours ago /bin/sh -c #(nop) CMD ["/home/test/docker.
  25. s... 0B
  26. f6587dbd78dd 34 hours ago /bin/sh -c chmod +x /home/test/docker.sh
  27. 57B
  28. 8f092336a175 34 hours ago /bin/sh -c #(nop) ADD file:84ec58f8405b1601
  29. 7... 57B
  30. 82c412669879 34 hours ago /bin/sh -c ln -sfv
  31. /usr/share/zoneinfo/Asia/... 33B
  32. 1a932d4c7762 34 hours ago /bin/sh -c #(nop) LABEL MAINTATNER=Mr.chen
  33. .... 0B
  34. 49f7960eb7e4 4 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"]
  35. 0B
  36. <missing> 4 weeks ago /bin/sh -c #(nop) LABEL org.label-schema.s
  37. c... 0B
  38. <missing> 4 weeks ago /bin/sh -c #(nop) ADD file:8f4b3be0c1427b15
  39. 8... 200MB

3.21 Docker命令:info

用于查看当前操作系统的docker运行信息

 
    
  1. [root@docker ~]# docker info
  2. Client:
  3. Context: default
  4. Debug Mode: false
  5. Plugins:
  6. app: Docker App (Docker Inc., v0.9.1-beta3)
  7. buildx: Docker Buildx (Docker Inc., v0.8.2-docker)
  8. compose: Docker Compose (Docker Inc., v2.6.0)
  9. scan: Docker Scan (Docker Inc., v0.17.0)
  10. Server:
  11. Containers: 3 #容器镜像3个
  12. Running: 0 #正在运行的容器0
  13. Paused: 0
  14. Stopped: 3
  15. Images: 3 #一共有3个镜像
  16. Server Version: 20.10.17
  17. Storage Driver: overlay2
  18. Backing Filesystem: xfs
  19. Supports d_type: true
  20. Native Overlay Diff: true
  21. userxattr: false
  22. Logging Driver: json-file
  23. Cgroup Driver: cgroupfs
  24. Cgroup Version: 1
  25. Plugins:
  26. Volume: local
  27. Network: bridge host ipvlan macvlan null overlay
  28. Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
  29. Swarm: inactive
  30. Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
  31. Default Runtime: runc
  32. Init Binary: docker-init
  33. containerd version: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
  34. runc version: v1.1.2-0-ga916309
  35. init version: de40ad0
  36. Security Options:
  37. seccomp
  38. Profile: default
  39. Kernel Version: 3.10.0-862.el7.x86_64
  40. Operating System: CentOS Linux 7 (Core)
  41. OSType: linux
  42. Architecture: x86_64
  43. CPUs: 2
  44. Total Memory: 3.968GiB
  45. Name: docker
  46. ID: MTHU:S5XU:UKGA:DGC7:BCEQ:NREX:SSWI:MF2Y:34U3:TEK2:RJCZ:C2VK
  47. Docker Root Dir: /var/lib/docker
  48. Debug Mode: false
  49. Username: spengc
  50. Registry: https://index.docker.io/v1/
  51. Labels:
  52. Experimental: false
  53. Insecure Registries:
  54. 127.0.0.0/8
  55. Registry Mirrors:
  56. https://registry.docker-cn.com/
  57. Live Restore Enabled: false

3.22 Docker命令:inspect

查看某个镜像的详细信息

 
    
  1. [root@docker ~]# docker inspect 05d3c1e2d0c1
  2. [
  3. {
  4. "Id": "sha256:05d3c1e2d0c166b1654f86a5beed614065450b186a94e4761120b3458b45509d",
  5. "RepoTags": [
  6. "centos/systemd:latest"
  7. ],
  8. "RepoDigests": [
  9. "centos/systemd@sha256:09db0255d215ca33710cc42e1a91b9002637eeef71322ca641947e65b7d53b58"
  10. ],
  11. "Parent": "",
  12. "Comment": "",
  13. "Created": "2018-12-29T18:57:04.462738239Z",
  14. "Container": "d65db7054384e55b6a0df28ccc3c712bf12d0058ee12f3f31c687916573fc874",
  15. "ContainerConfig": {
  16. "Hostname": "d65db7054384",
  17. "Domainname": "",
  18. "User": "",
  19. "AttachStdin": false,
  20. "AttachStdout": false,
  21. "AttachStderr": false,
  22. "Tty": false,
  23. "OpenStdin": false,
  24. "StdinOnce": false,
  25. "Env": [
  26. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
  27. "container=docker"
  28. ],
  29. "Cmd": [
  30. "/bin/sh",
  31. "-c",
  32. "#(nop) ",
  33. "CMD [\"/usr/sbin/init\"]"
  34. ],
  35. "ArgsEscaped": true,
  36. "Image": "sha256:6bc581d3208e8b42e7d1d8ef576906103c73ecd5d6e28ec9ab0f3d9d370c0d50",
  37. "Volumes": {
  38. "/sys/fs/cgroup": {}
  39. },
  40. "WorkingDir": "",
  41. "Entrypoint": null,
  42. "OnBuild": null,
  43. "Labels": {
  44. "org.label-schema.build-date": "20181205",
  45. "org.label-schema.license": "GPLv2",
  46. "org.label-schema.name": "CentOS Base Image",
  47. "org.label-schema.schema-version": "1.0",
  48. "org.label-schema.vendor": "CentOS"
  49. }
  50. },
  51. "DockerVersion": "18.03.1-ee-3",
  52. "Author": "The CentOS Project <cloud-ops@centos.org>",
  53. "Config": {
  54. "Hostname": "",
  55. "Domainname": "",
  56. "User": "",
  57. "AttachStdin": false,
  58. "AttachStdout": false,
  59. "AttachStderr": false,
  60. "Tty": false,
  61. "OpenStdin": false,
  62. "StdinOnce": false,
  63. "Env": [
  64. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
  65. "container=docker"
  66. ],
  67. "Cmd": [
  68. "/usr/sbin/init"
  69. ],
  70. "ArgsEscaped": true,
  71. "Image": "sha256:6bc581d3208e8b42e7d1d8ef576906103c73ecd5d6e28ec9ab0f3d9d370c0d50",
  72. "Volumes": {
  73. "/sys/fs/cgroup": {}
  74. },
  75. "WorkingDir": "",
  76. "Entrypoint": null,
  77. "OnBuild": null,
  78. "Labels": {
  79. "org.label-schema.build-date": "20181205",
  80. "org.label-schema.license": "GPLv2",
  81. "org.label-schema.name": "CentOS Base Image",
  82. "org.label-schema.schema-version": "1.0",
  83. "org.label-schema.vendor": "CentOS"
  84. }
  85. },
  86. "Architecture": "amd64",
  87. "Os": "linux",
  88. "Size": 201779604,
  89. "VirtualSize": 201779604,
  90. "GraphDriver": {
  91. "Data": {
  92. "LowerDir": "/var/lib/docker/overlay2/d962e3a1441c42b01bd9ca4b2ce6526898f99a2f974cab05496929c651fcd6f1/diff",
  93. "MergedDir": "/var/lib/docker/overlay2/7a1d3c5e995dc20e2c7d15b445f4dc38b0a38695f2fd7f80504a13f6d0364e9f/merged",
  94. "UpperDir": "/var/lib/docker/overlay2/7a1d3c5e995dc20e2c7d15b445f4dc38b0a38695f2fd7f80504a13f6d0364e9f/diff",
  95. "WorkDir": "/var/lib/docker/overlay2/7a1d3c5e995dc20e2c7d15b445f4dc38b0a38695f2fd7f80504a13f6d0364e9f/work"
  96. },
  97. "Name": "overlay2"
  98. },
  99. "RootFS": {
  100. "Type": "layers",
  101. "Layers": [
  102. "sha256:071d8bd765171080d01682844524be57ac9883e53079b6ac66707e192ea25956",
  103. "sha256:fd40254c9c6971795b270293804a4b6dd2eb60e15215cdad44df1d8e439af2c0"
  104. ]
  105. },
  106. "Metadata": {
  107. "LastTagTime": "0001-01-01T00:00:00Z"
  108. }
  109. }
  110. ]

3.23 Docker命令:kill

强行停止一个或多个正在运行状态的容器进程

 
    
  1. [root@docker ~]# docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED STA
  3. TUS PORTS NAMES
  4. ab06a9794e45 5620f1cb9e8e "/bin/bash" 2 hours ago Up
  5. hours confident_snyder
  6. [root@docker ~]# docker kill ab06a9794e45
  7. ab06a9794e45
  8. [root@docker ~]# docker ps -a
  9. CONTAINER ID IMAGE COMMAND CREATED STA
  10. TUS PORTS NAMES
  11. ab06a9794e45 5620f1cb9e8e "/bin/bash" 2 hours ago Exi
  12. ted (137) 1 second ago confident_snyder

3.24 Docker命令:save

用于将一个镜像的文件系统导出到本地(export导出的是容器)

 
    
  1. [root@docker ~]# docker save -o /root/nginx1.12 nginx:v1.12.2
  2. [root@docker ~]# ls
  3. anaconda-ks.cfg nginx1.12 ping.txt
  4. [root@docker ~]# docker save -o /root/nginx1.12.tar nginx:v1.12.2
  5. [root@docker ~]# ls
  6. anaconda-ks.cfg nginx1.12 nginx1.12.tar ping.txt

3.25 Docker命令:load

用于将save导出到本地的tar包,重新加载为镜像(和源镜像的名字标识完全一样)

 
    
  1. [root@docker ~]# docker load < ./nginx1.12 #将之前的nginx镜像导入到系统
  2. 43b3c4e3001c: Loading layer [==================================================>] 83.87MB/83.87MB
  3. 1c99a7efe9d9: Loading layer [==================================================>] 62.01MB/62.01MB
  4. 305b0db3a210: Loading layer [==================================================>] 3.072kB/3.072kB
  5. c03189a5ef70: Loading layer [==================================================>] 4.096kB/4.096kB
  6. 1d561d938628: Loading layer [==================================================>] 3.584kB/3.584kB
  7. de100bd247e0: Loading layer [==================================================>] 7.168kB/7.168kB
  8. Loaded image: nginx:v1.12.2

3.26 Docker命令:logs

用于输出一个容器进程内的操作日志

 
    
  1. [root@docker ~]# docker run -d nginx:v2 /bin/bash -c "while :; do echo haha;sleep l;done" #做测试的死循环
  2. cf60dd2586824ef8f2df083fe0956a44bc4b1235bac320f4b269f90488675527
  3. [root@docker ~]# docker ps -a
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. cf60dd258682 nginx:v2 "/bin/bash -c 'while…" 6 seconds ago Up 5 seconds sharp_bartik
  6. [root@docker ~]# docker logs cf6 #查看操作日志

3.27 Docker命令:pause && unpause

用于将一个或多个容器的进程暂停和恢复

 
    
  1. [root@docker ]# docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED
  3. STATUS PORTS NAMES
  4. 16f9f6c9c699 test:1 "/home/test/docker.sh" 5 minutes ago
  5. Up 5 minutes adoring_noether
  6. [root@docker ]# docker pause 16f9f6c9c699 #暂停容器进程
  7. 16f9f6c9c699
  8. [root@docker ]# docker ps -a
  9. CONTAINER ID IMAGE COMMAND CREATED
  10. STATUS PORTS NAMES
  11. 16f9f6c9c699 test:1 "/home/test/docker.sh" 5 minutes ago
  12. Up 5 minutes (Paused) adoring_noether
  13. [root@docker ]# docker unpause 16f9f6c9c699 #恢复容器进程
  14. 16f9f6c9c699
  15. [root@docker ]# docker ps -a
  16. CONTAINER ID IMAGE COMMAND CREATED
  17. STATUS PORTS NAMES
  18. 16f9f6c9c699 test:1 "/home/test/docker.sh" 5 minutes ago
  19. Up 5 minutes adoring_noether

3.28 Docker命令:port

用于列出一个容器的端口映射及协议

 
    
  1. [root@docker ~]# docker run -p 8888:80 -itd nginx:v2 /bin/bash #物理端口:容器端口
  2. 4769c1c506e52dcd22ba606785fd3333163bb3e4424b93b3a72a0d3c5d69426c
  3. [root@docker ~]# docker ps
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. 4769c1c506e5 nginx:v2 "/bin/bash" 5 seconds ago Up 5 seconds 0.0.0.0:8888->80/tcp, :::8888->80/tcp jolly_lichterman

3.29 Docker命令:rename

给容器进程重命名

 
    
  1. [root@docker ]# docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED
  3. STATUS PORTS NAMES
  4. 6321c3a3481f test:1 "/home/test/docker.sh" 11 minutes ago
  5. Up 11 minutes 0.0.0.0:2222->22/tcp romantic_elbakyan
  6. 16f9f6c9c699 test:1 "/home/test/docker.sh" 22 minutes ago
  7. Up 22 minutes adoring_noether
  8. [root@docker ]# docker rename romantic_elbakyan Mr.chen
  9. [root@docker ]# docker ps -a
  10. CONTAINER ID IMAGE COMMAND CREATED
  11. STATUS PORTS NAMES
  12. 6321c3a3481f test:1 "/home/test/docker.sh" 11 minutes ago
  13. Up 11 minutes 0.0.0.0:2222->22/tcp Mr.chen
  14. 16f9f6c9c699 test:1 "/home/test/docker.sh" 22 minutes ago
  15. Up 22 minutes adoring_noether

3.30 Docker命令:restart

重启一个容器进程

 
    
  1. [root@docker ]# docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED
  3. STATUS PORTS NAMES
  4. 6321c3a3481f test:1 "/home/test/docker.sh" 15 minutes ago
  5. Up 15 minutes 0.0.0.0:2222->22/tcp Mr.chen
  6. 16f9f6c9c699 test:1 "/home/test/docker.sh" 26 minutes ago
  7. Up 26 minutes adoring_noether
  8. [root@docker ]# docker restart 6321c3a3481f
  9. 6321c3a3481f
  10. [root@docker ]# docker ps -a
  11. CONTAINER ID IMAGE COMMAND CREATED
  12. STATUS PORTS NAMES
  13. 6321c3a3481f test:1 "/home/test/docker.sh" 15 minutes ago
  14. Up 2 seconds 0.0.0.0:2222->22/tcp Mr.chen
  15. 16f9f6c9c699 test:1 "/home/test/docker.sh" 26 minutes ago
  16. Up 26 minutes adoring_noether

3.31 Docker命令:stats

用于s实时输出容器的资源使用情况

 
    
  1. [root@docker ]# docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED
  3. STATUS PORTS NAMES
  4. 6321c3a3481f test:1 "/home/test/docker.sh" 17 minutes ago
  5. Up About a minute 0.0.0.0:2222->22/tcp Mr.chen
  6. 16f9f6c9c699 test:1 "/home/test/docker.sh" 28 minutes ago
  7. Up 28 minutes adoring_noether
  8. [root@docker ]# docker stats 6321c3a3481f
  9. #--no-tream只输出一次
  10. [root@docker ]# docker stats 6321c3a3481f --no-stream
  11. CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM
  12. % NET I/O BLOCK I/O PIDS
  13. 6321c3a3481f Mr.chen 0.00% 292KiB / 974.6MiB 0.0
  14. 3% 648B / 0B 0B / 0B 2

3.32 Docker命令:tag

用于从一个指定的镜像创建另外一个镜像(标签)

 
    
  1. [root@docker ~]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. nginx latest 41b0e86104ba 6 days ago 142MB
  4. nginx v1.12.2 41b0e86104ba 6 days ago 142MB
  5. cp/alpine latest e66264b98777 7 weeks ago 5.53MB
  6. alpine latest e66264b98777 7 weeks ago 5.53MB
  7. centos latest 5d0da3dc9764 10 months ago 231MB
  8. [root@docker ~]# docker tag nginx:latest nginx:V1.12.1 #可以指定名字:标志来创建
  9. [root@docker ~]# docker images
  10. REPOSITORY TAG IMAGE ID CREATED SIZE
  11. nginx V1.12.1 41b0e86104ba 6 days ago 142MB
  12. nginx latest 41b0e86104ba 6 days ago 142MB
  13. nginx v1.12.2 41b0e86104ba 6 days ago 142MB
  14. cp/alpine latest e66264b98777 7 weeks ago 5.53MB
  15. alpine latest e66264b98777 7 weeks ago 5.53MB
  16. centos latest 5d0da3dc9764 10 months ago 231MB
  17. [root@docker ~]# docker tag 41b0e86104ba cp/nginx #也可以指定image id来创建
  18. [root@docker ~]# docker images
  19. REPOSITORY TAG IMAGE ID CREATED SIZE
  20. cp/nginx latest 41b0e86104ba 6 days ago 142MB
  21. nginx latest 41b0e86104ba 6 days ago 142MB
  22. centos v1.2.0 5d0da3dc9764 10 months ago 231MB
  23. centos v1.2.2 5d0da3dc9764 10 months ago 231MB

3.33 Docker命令:top

用于显示指定容器的进程信息

 
    
  1. 11. centos 7 49f7960eb7e4 4 weeks ago 200
  2. MB
  3. 12. centos latest 49f7960eb7e4 4 weeks ago 200
  4. MB
  5. 13. [root@docker 7]# docker rmi test:2
  6. 14. Untagged: test:2
  7. 15. [root@docker 7]# docker images
  8. 16. REPOSITORY TAG IMAGE ID CREATED SIZ
  9. E
  10. 17. test 1 cc87aef92b66 About an hour ago 200
  11. MB
  12. 18. centos 7 49f7960eb7e4 4 weeks ago 200
  13. MB
  14. 19. centos latest 49f7960eb7e4 4 weeks ago 200
  15. MB
  16. 20. [root@docker 7]# docker tag cc87aef92b66 test:2 #我们也可以指定image id来创建
  17. 21. [root@docker 7]# docker images
  18. 22. REPOSITORY TAG IMAGE ID CREATED SIZ
  19. E
  20. 23. test 1 cc87aef92b66 About an hour ago 200
  21. MB
  22. 24. test 2 cc87aef92b66 About an hour ago 200
  23. MB
  24. 25. centos 7 49f7960eb7e4 4 weeks ago 200
  25. MB
  26. 26. centos latest 49f7960eb7e4 4 weeks ago 200
  27. MB
  28. 3.33 Docker命令:top
  29. 用于显示指定容器的进程信息
  30. [root@docker ]# docker ps -a
  31. CONTAINER ID IMAGE COMMAND CREATED
  32. STATUS PORTS NAMES
  33. 6321c3a3481f test:1 "/home/test/docker.sh" 28 minutes ago
  34. Up 12 minutes 0.0.0.0:2222->22/tcp Mr.chen
  35. 16f9f6c9c699 test:1 "/home/test/docker.sh" 39 minutes ago
  36. Up 39 minutes adoring_noether
  37. [root@docker ]# docker top 6321c3a3481f
  38. UID PID PPID C STIM
  39. E TTY TIME CMD
  40. root 89798 89784 0 11:5
  41. pts/0 00:00:00 /bin/bash /home/test/docker
  42. .sh
  43. root 90265 89798 0 12:0
  44. pts/0 00:00:00 sleep 5

3.34 Docker命令:update

用于调整一个或多个容器的启动配置

 
    
  1. [root@docker 7]# docker update --help
  2. Usage: docker update [OPTIONS] CONTAINER [CONTAINER...]
  3. Update configuration of one or more containers
  4. Options:
  5. --blkio-weight uint16 Block IO (relative weight), between 10 and 1000
  6. , or 0 to disable (default 0)
  7. --cpu-period int Limit CPU CFS (Completely Fair Scheduler)
  8. period
  9. --cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota
  10. --cpu-rt-period int Limit the CPU real-time period in microseconds
  11. --cpu-rt-runtime int Limit the CPU real-time runtime in microseconds
  12. -c, --cpu-shares int CPU shares (relative weight) #调整CPU
  13. --cpus decimal Number of CPUs
  14. --cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)
  15. --cpuset-mems string MEMs in which to allow execution (0-3, 0,1)
  16. --kernel-memory bytes Kernel memory limit
  17. -m, --memory bytes Memory limit #调整内存
  18. --memory-reservation bytes Memory soft limit
  19. --memory-swap bytes Swap limit equal to memory plus swap: '-1' to
  20. enable unlimited swap
  21. --restart string Restart policy to apply when a container exits

3.35 Docker命令:version and wait

version用于显示docker的版本信息 wait用于捕捉一个或多个容器的退出状态,并返回退出状态码

 
    
  1. .sh
  2. 8. root 90265 89798 0 12:0
  3. 7 pts/0 00:00:00 sleep 5
  4. 3.34 Docker命令:update
  5. 用于调整一个或多个容器的启动配置
  6. 1. [root@docker 7]# docker update --help
  7. 2.
  8. 3. Usage: docker update [OPTIONS] CONTAINER [CONTAINER...]
  9. 4.
  10. 5. Update configuration of one or more containers
  11. 6.
  12. 7. Options:
  13. 8. --blkio-weight uint16 Block IO (relative weight), between 10 and 1000
  14. , or 0 to disable (default 0)
  15. 9. --cpu-period int Limit CPU CFS (Completely Fair Scheduler)
  16. period
  17. 10. --cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota
  18. 11. --cpu-rt-period int Limit the CPU real-time period in microseconds
  19. 12. --cpu-rt-runtime int Limit the CPU real-time runtime in microseconds
  20. 13. -c, --cpu-shares int CPU shares (relative weight) #调整CPU
  21. 14. --cpus decimal Number of CPUs
  22. 15. --cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)
  23. 16. --cpuset-mems string MEMs in which to allow execution (0-3, 0,1)
  24. 17. --kernel-memory bytes Kernel memory limit
  25. 18. -m, --memory bytes Memory limit #调整内存
  26. 19. --memory-reservation bytes Memory soft limit
  27. 20. --memory-swap bytes Swap limit equal to memory plus swap: '-1' to
  28. enable unlimited swap
  29. 21. --restart string Restart policy to apply when a container exits
  30. 3.35 Docker命令:version and wait
  31. version用于显示docker的版本信息
  32. wait用于捕捉一个或多个容器的退出状态,并返回退出状态码
  33. #显示docker版本信息
  34. [root@docker ]# docker version
  35. Client:
  36. Version: 18.03.1-ce
  37. API version: 1.37
  38. Go version: go1.9.5
  39. Git commit: 9ee9f40
  40. Built: Thu Apr 26 07:20:16 2018
  41. OS/Arch: linux/amd64
  42. Experimental: false
  43. Orchestrator: swarm
  44. Server:
  45. Engine:
  46. Version: 18.03.1-ce
  47. API version: 1.37 (minimum version 1.12)
  48. Go version: go1.9.5
  49. Git commit: 9ee9f40
  50. Built: Thu Apr 26 07:23:58 2018
  51. OS/Arch: linux/amd64
  52. Experimental: false
  53. #监听容器的退出状态并返回状态码
  54. [root@docker ]# docker ps -a
  55. CONTAINER ID IMAGE COMMAND CREATED
  56. STATUS PORTS NAMES
  57. 6321c3a3481f test:1 "/home/test/docker.sh" 33 minutes ago
  58. Up 17 minutes 0.0.0.0:2222-

标签: 3ad50c晶体管怎样1601连接器连接器df1ec二极管ppm3fd201e0sh8c15连接器8012连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台