Docker之容器操作

1 、创建容器

1.1 新建容器

docker create [option] IMAGE_NAME:IMAGE_TAG 创建停止状态的容器,并生成容器ID(CONTAINER_ID)。
docker start CONTAINER_ID 启动上述容器。

选项主要分为运行模式、环境配置、资源限制&安全保护三类,非常多,边用边记。
create命令以及容器运行模式的选项如下:

选项说明
-a=[ ]attach 模式,是否绑定到标准输入、输出和错误
-d=true或false是否守护模式运行容器,默认为否
–detach-keys=""attach 模式退出的快捷键
–entrypoint=""镜像存在人口命令时,覆盖为新的命令
–expose=[ ]指定容器会暴露出来的端口或端口范围
–group-add=[ ]运行容器的用户组
-i=true或falseinteractive;保持标准输入打开,默认为 false
–ipc=""容器 lPC 名空间,可以为其他容器或主机。IPC意思为进程间通信
–isolation=”default ”容器使用的隔离机制
–log-driver="json-file ”指定容器的日志驱动类型,json-file、 syslog、journald、gelf、fluentd 、awslogs、splunk、etwlogs、gcplogs、none
–log-opt=[ ]传递给日志驱动的选项
–net= "bridge "指定容器网络模式,包括 bridge 、none 、其他容器内网络、 host网络或某个现有网络等
–net-alias=[ ]容器在网络中的别名
-P=true或false通过 NAT 机制将容器标记暴露的端口自动映射到本地主机的临时端口
-p=[ ]指定如何|决射到本地主机端口,例如 -p 11234- 12234:1234-2234
–pid=host容器的PID命名空间
–userns=""启用 userns-remap 配置用户命名空间的模式
–uts=host容器的UTS命名空间,UTS:UNIX分时操作系统
–restart=“no”容器的重启策略,包括 no、on- failure [:max-retry]、always、 unless-stopped
–rm=true或false容器退出后是否自动删除,不能跟-d同时使用
-t=true或falsetty;是否分配一个伪终端,默认为 false
–tmpfs=[ ]挂载临时文件系统到容器
-v[=[ [ 宿主机路径:] 容器路径[:选项] ] ]挂载主机上的文件卷到容器内
–volume-driver=" ”挂载文件卷的驱动类型
–volume-from=[ ]从其他容器挂在卷
-w=""容器内的默认工作目录

create 命令与容器环境和配置相关的选项

选项说明
–add-host=[ ]在容器内添加一个主机名到 IP 地址的映射关系(通过/etc/hosts文件)
–device=[ ]映射物理机上的设备到容器内
–dns-search=[ ]DNS搜索域
–dns-opt=[ ]自定义DNS选项
–dns=[ ]自定义DNS服务器
-e=[ ]environment;指定容器内的环境变量
–env-file=[ ]从文件中读取环境变量到容器内
-h=""hostname;指定容器内的主机名
–ip=""指定容器的IPV4地址
–ip6=""指定容器的IPV6地址
–link=[:alias]通过容器名/容器ID,链接到其他容器
–link-local-ip=[ ]:容器的本地链接地址列表
–mac-address=""指定容器的Mac地址
–name=""指定容器别名

create 命令与容器资源限制和安全保护相关的选项

选项说明
–blkio-weight容器读写块设备的I/O性能权重,默认为0
–blkio-weight-device=[DEVICE_NAME:WEIGHT]指定各个块设备的I/O性能权重
–cpu-shares=0允许容器使用 CPU 资源的相对权重,默认一个容器能用满一个核的CPU
–cap-add=[ ]增加容器的 Linux 指定安全能力
–cap-drop=[ ]移除容器的 Linux 指定安全能力
–cgroup-parent=""容器 cgroups 限制的创建路径
–cidfile=""指定容器的进程 ID 号写到文件
–cpu-period=0限制容器在 CFS 调度器下的 CPU 占用时间片
–cpuset-cpus=""限制容器能使用哪些 CPU 核心
–cpuset-mems=""NUMA 构下使用哪些核心的内存
–cpu-quota=0限制容器在 CFS调度器下的 CPU 配额
–device-read-bps=[ ]挂载设备的读吞吐率(以 bps 为单位)限制
–device-write-bps=[ ]挂载设备的写吞吐率(以 bps 为单位)限制
–device-read-iops=[ ]挂载设备的读速率(以每秒 i/o 次数为单位)限制
–device-write-iops=[ ]挂载设备的写速率(以每秒 i/o 次数为单位)限制
–health-cmd=""指定检查容器健康状态的命令
–health-interval=0s执行健康检查的间隔时间,单位可以为 ms、s、m、h
–health-retries=int健康检查失败重试次数,超过则认为不健康
–health-start-period=0s容器启动后进行健康检查的等待时间 单位可以为 ms、s、m、h
–health-timeout=0s健康检查的执行超时,单位可以为ms、s、m、h
–no-healthcheck=true或false是否禁用健康检查
–init在容器中执行一个init进程,来负责响应信号和处理僵尸状态子进程
–kernel-memory=“”限制容器使用内核的内存大小, 单位可以是b、k、m、g
-m=""限制容器内应用的内存大小 , 单位可以是b、k、m、g
–memory-reservation=""当系统中内存过低时, 容器会被强制限制内存给定值,默认情况下等于内存限制值
–memory-swap=“LIMIT”限制容器使用内存和交换区的总大小
–oom-kill-disable=true或false内存耗尽时是否杀死容器
–oom-score-adj=""调整容器的内存耗尽参数
–pid-limit=""限制容器的pid进程个数
–privileged=true或false是否给容器最高权限,这意味着容器内应用将不受权限的限制, 不推荐
–read-only=true或false是否让容器内的文件系统只读
–security-opt=true或false指定一些安全参数,包括权限、安全能力、apparmor等
–stop-signal=SIGTERM指定停止容器的系统信号
–shm-size=""/dev/shm的大小
–sig-proxy=true或false是否代理收到的信号给应用 ,默认为true,不能代理 SIGCHLD、SIGSTOP、KILL 信号
–memory-swappiness=“0~100”调整容器的内存交换区参数
-u=""指定在容器内执行命令的用户信息
–userns指定用户的命名空间
–ulimit=[ ]通过ulimit来限制最大文件数、最大进程数
-l=[ ]label;以键值对方式指定容器的标签信息
–label-file=[ ]从文件中读取标签信息
[root@aliyun data]# docker images cent*
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              300e315adb2f        8 months ago        209 MB

[root@aliyun data]# docker create -it --kernel-memory="125m" -m="68m"  --blkio-weight=0 --read-only=false centos:latest
563435e882ec0f3f200f9d56acdb591152603e39e9c89f590f716dcff4cc265c

[root@aliyun data]# docker ps -a
CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS                      PORTS                               NAMES
563435e882ec        centos:latest                                "/bin/bash"              32 seconds ago      Created   

1.2 启动容器

docker start CONTAINER_ID
上一小结create创建的容器还是Created,需要通过start指令启动才能运行。

[root@aliyun data]# docker start 563435e882ec
563435e882ec

[root@aliyun data]# docker ps -a
CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS                      PORTS                               NAMES
563435e882ec        centos:latest                                "/bin/bash"              2 minutes ago       Up 2 seconds 

1.3 新建并启动容器

docker run [option] IMAGE_NAME:IMAGE_TAG
该命令在后台运行的标准操作有:

  • 检查本地是否存在指定的镜像,不存在就从公有仓库下载;
  • 利用镜像创建一个容器,并启动该容器;
  • 分配一个文件系统给容器,并在只读的镜像层外面挂载一层可读写层;
  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去;
  • 从网桥的地址池配置一个 IP 地址给容器;
  • 执行用户指定的应用程序;
  • 执行完毕后容器被自动终止;

启动并且进入容器内的伪bash客户端(宿主机上是root,容器默认也是root用户):
docker run -it IMAGE_NAME:IMAGE_TAG /bin/bash

[root@aliyun data]# docker run -it centos:latest /bin/bash
[root@a6feeb6d1f68 /]# pwd
/
[root@a6feeb6d1f68 /]# ls -lh
total 48K
lrwxrwxrwx   1 root root    7 Nov  3  2020 bin -> usr/bin
drwxr-xr-x   5 root root  360 Aug 20 14:13 dev
drwxr-xr-x   1 root root 4.0K Aug 20 14:13 etc
drwxr-xr-x   2 root root 4.0K Nov  3  2020 home
lrwxrwxrwx   1 root root    7 Nov  3  2020 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Nov  3  2020 lib64 -> usr/lib64
drwx------   2 root root 4.0K Dec  4  2020 lost+found
drwxr-xr-x   2 root root 4.0K Nov  3  2020 media
drwxr-xr-x   2 root root 4.0K Nov  3  2020 mnt
drwxr-xr-x   2 root root 4.0K Nov  3  2020 opt
dr-xr-xr-x 146 root root    0 Aug 20 14:13 proc
dr-xr-x---   2 root root 4.0K Dec  4  2020 root
drwxr-xr-x   1 root root 4.0K Aug 20 14:13 run
lrwxrwxrwx   1 root root    8 Nov  3  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root 4.0K Nov  3  2020 srv
dr-xr-xr-x  13 root root    0 Jul 14 13:23 sys
drwxrwxrwt   7 root root 4.0K Dec  4  2020 tmp
drwxr-xr-x  12 root root 4.0K Dec  4  2020 usr
drwxr-xr-x  20 root root 4.0K Dec  4  2020 var

[root@a6feeb6d1f68 /]# ps -aux |grep -v ps
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  12012  2216 ?        Ss   14:13   0:00 /bin/bash

ps:退出容器,可以在伪终端上 CTRL+d 或 键入 exit

对于所创建的 bash 容器,当用户使用 exit 命令退出 bash 进程之后,容器也会自动退出。这是因为对于容器来说,当其中的应用退出后,容器的使命完成,也就没有继续运行的必要了。

run常见错误码:

  • 125:Docker daemon 执行出错,例如指定了不支持的 Docker 命令参数;
  • 126:所指定命令无法执行,例如权限出错;
  • 127:容器内命令无法找到;

1.4 守护模式运行

docker run -d IMAGE_NAME:IMAGE_TAG

[root@aliyun data]# docker run -d centos:latest /bin/bash -c "while true; do echo lfc..; sleep 1; done"
1c2750118ce2d77e9bb2dc8e4ae3e62882816cbfd193dd2b4f130ad782b5d97

[root@aliyun data]# docker ps
CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS              PORTS                               NAMES
1c2750118ce2        centos:latest                                "/bin/bash -c 'whi..."   4 seconds ago       Up 3 seconds                                            sharp_volhard                                       

[root@aliyun data]# docker logs 1c2750118ce2
lfc..
lfc..

1.5 查看容器输出

docker logs CONTAINER_ID

选项说明
–details打印详细信息
-ffllow;继续保持输出
–since=""格式如2021-08-20T14:34:40.135017000Z;输出从某个时间戳之后的日志
–tail=“all”输出最近的若干行日志
-ttimestamp;显示时间戳
–until输出某个时间之前的日志

杨保华大牛的书中选项都是-有误,有几个参数应该是–的,疑惑之时需要习惯man命令或者help查阅一下。

[root@aliyun data]# docker logs --details -t  1c2750118ce2 |head
2021-08-20T14:34:38.116291000Z  lfc..
2021-08-20T14:34:39.132919000Z  lfc..
2021-08-20T14:34:40.135017000Z  lfc..
2021-08-20T14:34:41.137588000Z  lfc..
2021-08-20T14:34:42.139256000Z  lfc..
2021-08-20T14:34:43.141315000Z  lfc..
2021-08-20T14:34:44.143411000Z  lfc..
2021-08-20T14:34:45.145573000Z  lfc..
2021-08-20T14:34:46.147593000Z  lfc..
2021-08-20T14:34:47.149688000Z  lfc..

[root@aliyun data]# docker logs --details -t --since="2021-08-20T14:34:40.135017000Z"  1c2750118ce2 |head
2021-08-20T14:34:40.135017000Z  lfc..
2021-08-20T14:34:41.137588000Z  lfc..
2021-08-20T14:34:42.139256000Z  lfc..
2021-08-20T14:34:43.141315000Z  lfc..
2021-08-20T14:34:44.143411000Z  lfc..
2021-08-20T14:34:45.145573000Z  lfc..
2021-08-20T14:34:46.147593000Z  lfc..
2021-08-20T14:34:47.149688000Z  lfc..
2021-08-20T14:34:48.151756000Z  lfc..
2021-08-20T14:34:49.153710000Z  lfc..

[root@aliyun data]# docker logs --details -t --tail=5  1c2750118ce2
2021-08-20T14:41:37.115065000Z  lfc..
2021-08-20T14:41:38.117108000Z  lfc..
2021-08-20T14:41:39.119421000Z  lfc..
2021-08-20T14:41:40.121367000Z  lfc..
2021-08-20T14:41:41.123727000Z  lfc..

2、 停止容器

2.1 暂停容器

暂停:docker pause CONTAINER_ID
恢复:docker unpause CONTAINER_ID

[root@aliyun data]# docker ps
CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS                      PORTS                               NAMES
563435e882ec        centos:latest                                "/bin/bash"              About an hour ago   Up About an hour (Paused)                                       ecstatic_pike

[root@aliyun data]# docker pause 563435e882ec
563435e882ec

[root@aliyun data]# docker unpause 563435e882ec
563435e882ec

2.2 终止容器

停止:docker stop CONTAINER_ID
先停止再启动:docker restart CONTAINER_ID

[root@aliyun data]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
563435e882ec        centos:latest       "/bin/bash"         About an hour ago   Up About an hour                        ecstatic_pike

[root@aliyun data]# docker stop 563435e882ec
563435e882ec

[root@aliyun data]# docker start 563435e882ec
563435e882ec

[root@aliyun data]# docker restart 563435e882ec
563435e882ec

3、进入容器

3.1 attach 命令

docker attach [--detach-keys[=[]]] [--no-stdin] [--sig-proxy[=true]] CONTAINER_ID

选项说明
–detach-keys[=[]]指定退出 attach 模式的快捷键序列, 默认是 CTRL-p和CTRL-q
–no-stdin=true或false是否关闭标准输入,默认打开
–sig-proxy=true或false是否代理收到的系统信号给应用进程,默认true
[root@aliyun ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
563435e882ec        centos:latest       "/bin/bash"         43 hours ago        Up 42 hours                             ecstatic_pike

[root@aliyun ~]# docker attach 563435e882ec
[root@563435e882ec /]#

3.2 exec 命令(更加常用)

docker exec [-d] [-i] [-t] [-u[=user]] [--privileged] [--detach-keys[=[]]] CONTAINER_ID COMMAND [ARG...]

选项说明
-ddetach;在容器后台执行命令
–detach-keys=""指定容器切回后台的命令
-e=[ ]指定环境变量列表
-i=true或falseinteractive;打开标准输入接收用户输入指令,默认为false
–privileged=true或false是否给执行命令以高权限,默认false
-t=true或false分配伪终端,默认为false
-u=""执行命令的用户名或者ID
[root@aliyun ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
563435e882ec        centos:latest       "/bin/bash"         44 hours ago        Up 6 minutes                            ecstatic_pike

[root@aliyun ~]# docker exec -it 563435e882ec /bin/bash
[root@563435e882ec /]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 09:54 ?        00:00:00 /bin/bash
root        14     0  0 10:01 ?        00:00:00 /bin/bash
root        27    14  0 10:01 ?        00:00:00 ps -ef

4、删除容器

docker rm [-f] [-l] [-v] CONTAINER_ID

选项说明
-f=falseforce;是否强制终止并删除,Docker 会先发送 系统信号SIGKILL信号给容器,终止其中的应用,之后强行删除
-l=falselink;删除容器的连接,但是保留容器
-v=falsevolume;删除容器所挂载的数据卷

5、导入和导出容器

5.1 导出容器

导出容器是指,导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行
状态。
docker export -o fileName CONTAINER_ID

[root@aliyun dockerStudy]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
563435e882ec        centos:latest       "/bin/bash"         44 hours ago        Up 18 minutes                           ecstatic_pike

[root@aliyun dockerStudy]# docker export -o lfcCentos.tar 563435e882ec

[root@aliyun dockerStudy]# ll
total 211476
-rw------- 1 root root 216547328 Aug 22 18:12 lfcCentos.tar

5.2 导入容器(本质是导入容器的镜像)

docker import -c[=[]] -m[=MESSAGE] fileName [REPOSITORY[:TAG]]

选项说明
-c=[ ]change;对容器进行修改的Dockerfile指令
-mmessge;相关导入说明
[root@aliyun dockerStudy]# docker import -m="The centos system for lfc" lfcCentos.tar lfc/centos:v1.0 
sha256:b90073757875861d2d06f80423ae8daacbd4adc9e50d6047b94da5ab92d55241

[root@aliyun dockerStudy]# docker images
REPOSITORY                TAG                            IMAGE ID            CREATED             SIZE
lfc/centos                v1.0                           b90073757875        30 seconds ago      209 MB

容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),
而镜像存储文件将保存完整记录,体积更大。

6、查看容器

6.1 查看容器详情

docker container inspect CONTAINER_ID

[root@aliyun dockerStudy]# docker container inspect 563435e882ec
[
    {
        "Id": "563435e882ec0f3f200f9d56acdb591152603e39e9c89f590f716dcff4cc265c",
        "Created": "2021-08-20T13:52:50.894293891Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 17919,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-08-22T09:54:09.761844106Z",
            "FinishedAt": "2021-08-22T09:48:40.444275375Z"
        },
        ......
]

6.2 查看容器内的进程

docker top CONTAINER_ID

[root@aliyun dockerStudy]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
563435e882ec        centos:latest       "/bin/bash"         45 hours ago        Up About an hour                        ecstatic_pike

[root@aliyun dockerStudy]# docker top 563435e882ec
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                17919               17905               0                   17:54               pts/1               00:00:00            /bin/bash

6.3 查看统计信息

docker stats [OPTIONS] CONTAINER_ID 子命令

选项说明
-a输出所有容器的统计信息
–format=""格式化输出,采用golang的模板
–no-stream不持续输出,默认会自动更新持续实时结果
[root@aliyun dockerStudy]# docker stats  563435e882ec
CONTAINER           CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
563435e882ec        0.00%               1.25 MiB / 68 MiB   1.84%               126 kB / 656 B      6.49 MB / 0 B       1
CONTAINER           CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
563435e882ec        0.00%               1.25 MiB / 68 MiB   1.84%               126 kB / 656 B      6.49 MB / 0 B       1
CONTAINER           CPU %               MEM USAGE / LIMIT   MEM %               NET I/O

7、其他常用容器命令

7.1 复制文件(或目录)

docker cp [OPTIONS] HOST_DIR_FILE CONTAINER_ID:PATH

选项说明
-aarchive;打包模式,复制文件会带有原始的uid/gid
-L跟随软链接。当原路径为软连接时,默认只复制链接信息,使用该选项会复制链接的目标内容
[root@aliyun dockerCopyDir]# tree -L 3 /tmp/
/tmp/
├── dockerCopyDir
│   ├── a.log
│   └── b.log
├── dockerCopyFile.log
[root@aliyun tmp]# ll
total 12
drwxr-xr-x 2 root root 4096 Aug 22 19:28 dockerCopyDir
-rw-r--r-- 1 root root   15 Aug 22 19:27 dockerCopyFile.log

[root@aliyun tmp]# chown nginx:nginx dockerCopyFile.log
[root@aliyun tmp]# cat /etc/passwd
nginx:x:996:993:nginx user:/var/cache/nginx:/sbin/nologin

[root@aliyun tmp]# docker cp -a /tmp/dockerCopyFile.log 563435e882ec:/tmp

[root@aliyun tmp]# docker cp /tmp/dockerCopyDir/ 563435e882ec:/tmp

[root@aliyun tmp]# docker exec -it 563435e882ec /bin/bash
[root@563435e882ec /]# ls -l /tmp/
total 16
drwxr-xr-x 2 root root 4096 Aug 22 11:28 dockerCopyDir
-rw-r--r-- 1  996  993   15 Aug 22 11:27 dockerCopyFile.log

7.2 查看变更

docker diff CONTAINER_ID

[root@aliyun tmp]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
563435e882ec        centos:latest       "/bin/bash"         45 hours ago        Up About an hour                        ecstatic_pike

[root@aliyun tmp]# docker diff 563435e882ec
C /root
A /root/.bash_history
C /run
D /run/secrets
C /tmp
D /tmp/dockerCopyDir
A /tmp/dockerCopyDir/a.log
A /tmp/dockerCopyDir/b.log
A /tmp/dockerCopyFile.log

7.3 查看端口映射

docker port CONTAINER_ID
注意该命令只有在容器运行状态下才会有结果。

[root@aliyun tmp]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
563435e882ec        centos:latest       "/bin/bash"              45 hours ago        Up About an hour                           ecstatic_pike

570c98d0654d        nginx               "/docker-entrypoin..."   5 days ago          Up 19 seconds       0.0.0.0:8080->80/tcp   myNginx
[root@aliyun tmp]# docker port 570c98d0654d
80/tcp -> 0.0.0.0:8080

7.4 更新配置

更新容器的一些运行时配置,主要是资源限制份额。
docker update [OPTIONS] CONTAINER_ID

选项说明
–blkio-weightuint16,更新块IO限制,10~1000,默认为0
–cpu-periodint,限制CPU调度器CFS使用时间,单位为微秒,最小1000
–cpu-quotaint,限制CPU调度器CFS配额,单位为微秒,最小1000
–cpu-rt-periodint,限制 CPU 调度器的实时周期,单位为微秒
–cpu-rt-runtimeint,限制 CPU 调度器的实时运行时,单位为微秒
–cpu-sharesint,限制 CPU 使用份额
–cpuset-cpusstring,允许使用的 CPU 核,如 0-3, 0,1;
–cpuset-memsstring,允许使用的内存块,如 0-3’ 0, 1;
–kernel-memorystring 字节,限制使用的内核内存;
–memorystring 字节,限制使用的内存;
–memory-reservationstring 字节,内存软限制;
–memory-swap内存加上缓存区的限制,-1 表示为对缓冲区无限制;
–restart容器退出后的重启策略
[root@aliyun tmp]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
563435e882ec        centos:latest       "/bin/bash"              46 hours ago        Up 2 hours                                 ecstatic_pike
570c98d0654d        nginx               "/docker-entrypoin..."   5 days ago          Up 17 minutes       0.0.0.0:8080->80/tcp   myNginx
[r
oot@aliyun tmp]# docker update --cpu-quota 100000 --cpu-period 150000 570c98d0654d
570c98d0654d

8、小结

本篇主要详细说明了容器命令,最常用的莫过于 docker run 和docker exec 两者。通过创建容器时指定对应的资源配置选项来约束容器运行,保证宿主机和容器能够高效协作,在生产环境当中,为了提高容器的高可用和安全性,往往做到以下两点:

  1. 要合理使用资源限制参数来管理容器的资源消耗。
  2. 要指定合适的容器重启策略,来自动重启退出的容器。

PS:理论部分参考杨保华的《Docker技术入门与实战》,感兴趣的可以阅读之。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值