创建容器的工作原理:
当利用docker run来创建容器时,Docker在后台运行的标准操作包括:检查本地是否存在指定的镜像,不存在就从公有仓库下载,利用镜像创建并启动一个容器分配一个文件系统,并在只读的镜像层外面挂在一层可读写层;从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去;从地址池配置一个ip地址给容器;执行用户指定的应用程序,执行完毕后容器被终止。
注:容器不是一个虚拟机,因为他就是一个进程,如果我们退出,这个进程就退出了。
创建容器的常用选项:
指令 描述
-i, --interactive                交互式
-t, --tty                        分配一个伪终端
-d, --detach                     运行容器到后台
-a, --attach list                附加到运行的容器
--dns list                       设置DNS服务器
-e, --env list                   设置环境变量
--env-file list                  从文件读取环境变量
-p, --publish list               发布容器端口到主机
-P, --publish-all                发布容器所有EXPOSE的端口到宿主机随机端口
-h, --hostname string            设置容器主机名
--ip string                      指定容器IP,只能用于自定义网络
--link list                      添加连接到另一个容器
--network                        连接容器到一个网络
--mount mount                    挂载宿主机分区到容器
-v, --volume list                挂载宿主机目录到容器
--restart string                 容器退出时重启策略,默认no[always|on-failure]
--add-host list                  添加其他主机到容器中/etc/hosts
创建一个bs容器,并在后台运行。
[root@linux-docker01 ~]# docker container run -itd --name bs busybox
0490de553573ae9d30ca68a15a901e2b8c150528a11248c832ac36e42d5a41b4
进入到bs容器里面
[root@linux-docker01 ~]# docker container attach bs #如果退出不终止容器的话,按Ctrl+p+q即可
/ #
创建bs1容器并传入a变量
[root@linux-docker01 ~]# docker container run -itd -e a=123 --name bs1 busybox
d46fd062fd659f712b8128aa4706389317d32ed64b885b38efd8a068739bf655
[root@linux-docker01 ~]# docker exec -it bs1 sh
/ # echo $a
123
运行nginx01容器,并分配容器端口为80,与宿主机8080端口作为映射。
[root@linux-docker01 ~]# docker container run -itd -p 8080:80 --name nginx01 nginx
8b90babd6f7a2042bb1121ed11b048bbf9f382be31426f51f94aae8445b8c844
[root@linux-docker01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8b90babd6f7a nginx "nginx -g 'daemon of…" 18 seconds ago Up 17 seconds 0.0.0.0:8080->80/tcp nginx01
资源限制命令:
指令 描述
-m,--memory                  容器可以使用的最大内存量
--memory-swap                 允许交换到磁盘的内存量
--memory-swappiness=<0-100>   容器使用SWAP分区交换的百分比(0-100,默认为-1)
--memory-reservation          内存软限制,Docker检测主机容器争用或内存不足时所激活的软限制,使用此选项,值必须设置低于—memory,以使其优先
--oom-kill-disable            当宿主机内存不足时,内核会杀死容器中的进程。建议设置了-memory选项再禁用OOM。如果没有设置,主机可能会耗尽内存
--cpus                        限制容器可以使用多少可用的CPU资源
--cpuset-cpus                 限制容器可以使用特定的CPU
--cpu-shares                  此值设置为大于或小于默认1024值,以增加或减少容器的权重,并使其可以访问主机CPU周期的更大或更小比例
管理容器的常用选项:
指令 描述
ls                            列出容器
inspect                       显示一个或多个容器详细信息
attach                        附加本地标准输入,输出和错误到一个运行的容器
exec                          在运行容器中执行命令
commit                        创建一个新镜像来自一个容器
cp                            拷贝文件/文件夹到一个容器
logs                          获取一个容器日志
port                          列出或指定容器端口映射
stats                         显示容器资源使用统计
top                           显示一个容器运行的进程
update                        更新一个或多个容器配置
stop/start                    停止/启动一个或多个容器
rm                            删除一个或多个容器
查看当前运行的容器
[root@linux-docker01 ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8b90babd6f7a nginx "nginx -g 'daemon of…" 3 days ago Up 3 days 0.0.0.0:8080->80/tcp nginx01
d46fd062fd65 busybox "sh" 3 days ago Up 3 days bs1
0490de553573 busybox "sh" 3 days ago Up 3 days bs
查看容器的详细信息
[root@linux-docker01 ~]# docker container inspect 0490de553573
使用attach命令进入容器时会卡住,是因为将当前linux标准的输入输出附加到nginx容器中,那么nginx容器中是运行有一个进程的,可以用top命令查看到nginx -g daemon off是运行在前台实时运行了。这是用attach命令附加标准的输入输出就会造成进程的堵塞,附加不进去,也一直就会等待。
[root@linux-docker01 ~]# docker attach nginx01
[root@linux-docker01 ~]# docker top nginx01
UID PID PPID C STIME TTY TIME CMD
root 12421 12409 0 14:55 pts/0 00:00:00 nginx: master process nginx -g daemon off;
101 12445 12421 0 14:55 pts/0 00:00:00 nginx: worker process
可以使用exec进入容器
[root@linux-docker01 ~]# docker exec -it nginx01 bash
拷贝宿主机的文件到容器中
[root@linux-docker01 ~]# docker container cp anaconda-ks.cfg bs1:/root
[root@linux-docker01 ~]# docker container exec bs1 ls /root/
anaconda-ks.cfg
查看容器的日志
[root@linux-docker01 ~]# docker logs 8b90babd6f7a
查看容器的端口
[root@linux-docker01 ~]# docker container port nginx01
80/tcp -> 0.0.0.0:8080
查看容器资源的实时利用率
[root@linux-docker01 ~]# docker stats nginx01
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
8b90babd6f7a        nginx01             0.00%               1.348MiB / 3.685GiB   0.04%               648B / 0B           0B / 0B             2
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
8b90babd6f7a        nginx01             0.00%               1.348MiB / 3.685GiB   0.04%               648B / 0B           0B / 0B             2
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
8b90babd6f7a        nginx01             0.00%               1.348MiB / 3.685GiB   0.04%               648B / 0B           0B / 0B             2
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
8b90babd6f7a        nginx01             0.00%               1.348MiB / 3.685GiB   0.04%               648B / 0B           0B / 0B             2
删除所有的容器
[root@linux-docker01 ~]# docker rm -f $(docker ps -q -a)
 

Docker容器的管理的更多相关文章

  1. docker容器日志管理(清理)

    原文:docker容器日志管理(清理) 前言 在使用docker容器时候,其日志的管理是我们不得不考虑的事情.因为docker容器的日志文件会占据大量的磁盘空间.下面介绍的就是对docker容器日志的 ...

  2. paas架构之docker——容器进程管理

    1.docker进程管理 docker的进程管理命令ps的用法基本和ubuntu系统的用法一致 1.1. 查看docker进程 sudo docker ps –a 1.2. 附着到容器上 Sudo d ...

  3. Docker(七):Docker容器卷管理

    1.使用容器卷的原因:Docker容器产生的数据,如果不通过commit生成新的镜像,数据会在容器删除后丢失.为了能持久化保存和共享容器的数据,Docker提出了两种管理数据的方式:数据卷和数据卷容器 ...

  4. 2. docker 容器的管理(创建、查看、启动、终止、删除)

    一.创建 docker create:创建容器,处于停止状态. centos:latest:centos容器:最新版本(也可以指定具体的版本号). 本地有就使用本地镜像,没有则从远程镜像库拉取. 创建 ...

  5. docker容器日志管理

    docker容器日志分为两类:docker引擎日志(Docker本身运行的日志)和容器日志(各个容器内产生的日志) 一.Docker引擎日志: Centos系统下的docker引擎日志一般给syste ...

  6. Docker容器日志管理最佳实践

    目录 一 .Docker 引擎日志 二.容器日志 2.1.常用查看日志命令--docker logs 2.2 .Docker 日志 驱动 三. 生产环境中该如何储存容器中的日志 一.当是完全是标准输出 ...

  7. Docker 容器日志管理

    Docker 日志分为两类: Docker 引擎日志(也就是 dockerd 运行时的日志), 容器的日志,容器内的服务产生的日志. 一 .Docker 引擎日志 Docker 引擎日志一般是交给了 ...

  8. 基于spring-boot和docker-java实现对docker容器的动态管理和监控[附完整源码下载]

    ​ (我是个封面) docker简介 Docker 是一个开源的应用容器引擎,和传统的虚拟机技术相比,Docker 容器性能开销极低,因此也广受开发者喜爱.随着基于docker的开发者越来越多,doc ...

  9. Docker 的 Web 管理工具 DockerFly

    Dockerfly是基于 Docker1.12+ (Docker API 1.24+) 开发出Docker 管理工具,提供里最基本的基于 Docker 的管理功能,目的是能够方便广大Docker初学者 ...

随机推荐

  1. HackerRank-Python攻城歷程-1.Tuples

    Solution: if __name__ == '__main__': n = int(input()) integer_list = map(int, input().split()) t=tup ...

  2. 大数据: 完全分布式Hadoop集群-HBase安装

            HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库.它是面向列的,并适合于存储超大型松散数据.HBase适合于实时,随机对Big数据进行读写操作的业务环境.   本文基 ...

  3. Lintcode155-Minimum Depth of Binary Tree-Easy

    155. Minimum Depth of Binary Tree Given a binary tree, find its minimum depth. The minimum depth is ...

  4. [mysql]You must reset your password using ALTER USER statement before executing this statement.

    原因分析: MySQL版本5.6.6版本起,添加了password_expired功能,它允许设置用户的过期时间.这个特性已经添加到mysql.user数据表,但是它的默认值是”N”,可以使用ALTE ...

  5. Nginx 504 Gateway Time-out分析及解决方法

    一.场景还原php程序在执行抓取远程图片库并保存至本地服务器的时候,出现了“504 Gateway Time-out”错误提示. 问题定位:由于图片巨多,所以下载时间很长(10分钟以上),引起网关超时 ...

  6. kali虚拟机添加共享文件夹

    1.保证安装了vmtools 2.在虚拟机本身设置共享文件夹,如图 其中选的这个文件夹就是宿主机里待共享的文件夹. 3,在kali里启用它: vmhgfs-fuse .host:[宿主机文件夹] /m ...

  7. 在CentOS6.9上Shell脚本定时释放内存cache

    一.写Shell脚本 mkdir -p /var/script/ vim /var/script/freemem.sh 写入以下Shell脚本: #!/bin/bash # 当前已使用的内存大小 us ...

  8. UI组件--element-ui合计行在横向滚动条下面的解决方法

    使用element-ui合计功能, 因列数较多, 产生横向滚动条: 但是合计行却在滚动条下面, 拖动滚动条合计行不会跟着横向滚动. 在当前页面添加以下样式: <style lang='less' ...

  9. Java通过NIO实现快速文件拷贝的代码

    将内容过程重要的内容片段做个记录,下面的内容段是关于Java通过NIO实现快速文件拷贝的内容. public static void fileCopy( File in, File out ) thr ...

  10. English trip V2 - 3. A Healthy Diet Teacher:Corrine Key:各种前缀 im- un- in- re- over- under-

    In this lesson you will learn to talk about foot and drink for a healthy diet. 课上内容(Lesson) What do ...