docker 容器管理应用

0. 容器常用命令及选项

0.1 创建容器常用选项

图片.png

0.2 容器资源限制常用选项

图片.png

0.3 常用选项

图片.png

1. 创建容器

Usage:  docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]

-i:交互式
-t:分配伪终端
-d:运行容器到后台
-p [宿主机]:[容器] :暴露端口
-h:主机名
--name:容器名字

// 应用
# 简单创建
docker container run -d nginx
# 创建一个主机名为 nginx_web、环境变量 name=zun、容器名为 nginx 后台运行的容器
docker run -d -p 8080:80 --name=nginx -e age=18 -h nginx_web nginx
测试:
curl 172.16.1.16:8080   -- 172.16.1.16 为宿主机

2. 列出容器

docker ps
docker container ls

# 获取全部容器的ID
docker ps -aq

3. 查看容器的信息

# 根据容器 ID 查看容器信息
docker ps   -- 获取容器 ID
docker container inspect 01d4364252c5|more

# dns 信息
"ResolvConfPath": "/var/lib/docker/containers/01d4364252c5cb4d4918231122e1a30baa7145f2a2daaa3922fd8ba5
a106cd2c/resolv.conf",
# 主机名信息
"HostnamePath": "/var/lib/docker/containers/01d4364252c5cb4d4918231122e1a30baa7145f2a2daaa3922fd8ba5a1
06cd2c/hostname",
# ip 地址信息
"HostsPath": "/var/lib/docker/containers/01d4364252c5cb4d4918231122e1a30baa7145f2a2daaa3922fd8ba5a106cd2c/hosts",
# 日志信息
"LogPath": "/var/lib/docker/containers/01d4364252c5cb4d4918231122e1a30baa7145f2a2daaa3922fd8ba5a106cd2c/01d4364252c5cb4d4918231122e1a30baa7145f2a2daaa3922fd8ba5a106cd2c-json.log"

# 网关
"Gateway": "172.17.0.1",
# ip地址
"IPAddress": "172.17.0.2"

4. 在运行的容器中执行命令

Usage:  docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
COMMAND:bash/sh

docker ps
docker exec -it 01d4364252c5 bash

5. 查看日志

Usage:  docker logs [OPTIONS] CONTAINER

//方法一
docker logs 9f4c6393e470 -f
//方法二
docker container inspect 9f4c6393e470 |grep json.log
tail /var/lib/docker/containers/9f4c6393e470e29d8866fe72691246096bf8841584ff2094a0d6199fa10efe4d/9f4c6393e470e29d8866fe72691246096bf8841584ff2094a0d6199fa10efe4d-json.log -f

6. 资源限制

// 内存限制
[root@muban ~]# docker container run --help |grep memo
      --kernel-memory bytes            Kernel memory limit
  -m, --memory bytes                   Memory limit -- 最大内存使用量
      --memory-swap bytes              Swap limit equal to memory plus swap: '-1' to enable unlimited swap                  -- 允许交换到磁盘的内存量
      --memory-swappiness int          Tune container memory swappiness (0 to 100) (default -1)                           -- 容器使用SWAP分区交换的百分比(0-100,默认为-1)          

# 创建一个最大内存使用量为 0.5G 的容器
docker container run -d -m 0.5G nginx

// 禁用OOM Killer
–oom-kill-disable   -- 当内存使用过大时,自动释放某些程序的资源
docker container run -d -m 100M --oom-kill-disable nginx

ps: 通过设置--oom-kill-disable选项来禁止 OOM killer 杀死容器内进程。但请确保只有在使用了-m/--memory选项时才使用--oom-kill-disable禁用 OOM killer。如果没有设置-m选项,却禁用了 OOM-killer,可能会造成出现 out-of-memory 错误时,系统通过杀死宿主机进程或获取更改内存

// cpu 限制
[root@muban ~]# docker run --help |grep cpu
  -c, --cpu-shares int        CPU shares (relative weight) -- cpu共享(相对权重)
      --cpus decimal          Number of CPUs  -- cpu 数量
      --cpuset-cpus string    CPUs in which to allow  --限制容器使用特定的CPU核心,如(0-3, 0,1)

# 创建一个最大内存使用量为 100M,允许最多使用 50% cpu 的容器
docker run -d -m 100M --cpus=.5 nginx
# 创建一个最大内存使用量为 100M,允许最多使用一个半的 cpu 的容器
docker run -d -m 100M --cpus=1.5 nginx

ps: 容器少没必要限制资源,容器多需限制资源

7. 查看容器资源使用情况

# 单个容器(默认:流式)
docker stats 0f3f931644ac
# 查询某个容器当前 cpu 使用情况
docker stats 77976729c15d --no-stream |awk '{print $4}'
# 所有容器
docker stats

8. 创建镜像

Usage:  docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

docker container ls
docker container commit 8b7c9dbab4c5 nginx:v1

9. 拷贝文件/文件夹到容器

docker container ls
docker cp zun.txt 8b7c9dbab4c5:/tmp
docker container exec 8b7c9dbab4c5 ls /tmp

10. 查看容器端口映射

docker container port 77976729c15d

11. 查看一个容器运行的进程

docker container top 8b7c9dbab4c5

12. 删除容器

Usage:  docker container rm [OPTIONS] CONTAINER [CONTAINER...]
Remove one or more containers
Options:
  -f, --force     Force the removal of a running container (uses SIGKILL)
                    -- 强制移除正在运行的容器
# 移除单个容器                    
docker container rm 8b7c9dbab4c5
# 强制移除全部容器(包含正在运作的容器)
docker container rm `docker container ls -aq` -f

13. 停止/开启/重启容器

docker container stop 80b20fb056d3
docker container start 80b20fb056d3
docker container restart 80b20fb056d3

14. 容器数据持久化

# 作用:
1. 多个运行容器之间共享数据。
2. 当容器停止或被移除时,该卷依然存在。
3. 将容器的数据存储在远程主机或其他存储上(间接)

mkdir /data/nginx/html -p
touch /data/nginx/nginx.conf    -- 自己配置,如配置有误,容器不能正常运行
touch /data/nginx/html/index.html  


docker run -d -v /data/nginx/html/:/usr/share/nginx/html/ \
-v /data/nginx/nginx.conf:/etc/nginx/nginx.conf nginx


# 查看详细信息
docker inspect 916d76220fbc|grep -C 6 /data/nginx
"Mounts": [
            {
                "Type": "bind",
                "Source": "/data/nginx/html",
                "Destination": "/usr/share/nginx/html",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/data/nginx/nginx.conf",
                "Destination": "/etc/nginx/nginx.conf",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ]

ps:容器挂载在宿主机的文件(目录)会覆盖容器内原有的文件(目录)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容

  • 查看系统信息 帮助: 我们可以看到运行结果如下图所示。如果之前有学习过 docker 相关知识的同学,可能会发现一...
    夸克星阅读 1,186评论 0 0
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,849评论 0 5
  • 镜像 获取镜像 docker pull 拉取镜像 格式: docker pull [选项] [Docker Reg...
    小小了墨阅读 2,055评论 1 1
  • 短暂的7天过去了,收获满满、能量满满,在这7天里太多的感动、感恩!我相信这些满满的能量在我今后的生活中,定会时时化...
    3451a31eaa1c阅读 942评论 0 1
  • 年纪虽小,却对生活也有清晰的期待。当然心智稚嫩,却也一直在成长。我不确定今天我所想是否为以后我所想,不过可以确定的...
    鸭蛋00阅读 221评论 0 0