本单元主要是在docker镜像管理下进一步的培训学习文档。
四.容器管理
1.运行一个容器
docker container run --name c1 -it nginx:latest /bin/sh
2.后台运行一个容器
docker container run --name c1 -it -d nginx:latest
3.查看容器
docker container ls或则docker ps
4.停止容器
docker container stop c1或者docker stop c1 也可以restart ,start
5. 删除容器
docker container stop c1
docker container rm c1
docker container rm $(docker container ls -aq) -f #删除全部容器,不建议生产环境使用
6.查询容器详情
docker container inspect c1
7.容器的重启策略
容器支持的重启策略包括 always、unless-stopped 和 on-failed
docker container run --name c1 -it --restart always nginx /bin/sh
8.容器保留服务端口 -P或则-p
设置转发
sysctl -w net.ipv4.ip_forward=1
Docker 可以通过 docker run 命令的 -P 选项将容器内的端口动态绑定到宿主机上,也可以通过 -p 选项手动指定映射关系。
docker run -it --name c1 --rm -p 8000:80 nginx
五.数据卷与持久化
创建数据卷
docker volume create myvol
查看数据卷
docker volume ls
docker volume inspect myvol
删除存储卷
docker volume rm
使用存储卷
docker container run -dit --name c1 \
--mount source=myapp,target=/var/www/html \
nignx:v1
也可以使用
docker container run -dit --name c1 -v myapp:/var/www/html nginx:v1
绑定数据卷
--mount 选项支持三种类型的数据卷,包括:
volume:普通数据卷,映射到主机 /var/lib/docker/volumes 路径下
bind:绑定数据卷,映射到主机指定路径下
tmpfs:临时数据卷,只存在于内存中
比如
docker run -d --name web1 \
--mount type=bind,source=/var/www/html,target=/var/www/html \
whylitin/myapp:v1
或
docker run -d --name web1 \
-v /var/www/html/:/var/www/html \
nginx:v1
共享容器卷
docker run -d --name webdata \
--mount source=webdata,target=/var/www/html \
nginx:v1
docker run -d --volumes-from webdata --name web1 nginx:v1
六.容器网络
Docker 默认支持以下四种网络模式:
bridge 模式
host 模式
Container 模式
none 模式
指定网络模式
docker run -it --name c4 --rm --network bridge nginx:latest
docker container run -d --name c2 --network host nginx:latest
七.docker资源限制
基于cgroups, 是 Linux 内核提供的一种机制,包括 CPU、内存、IO 等
CPU 限制
--cpus:限制容器允许的 cpu 核数。
--cpuset-cpus:限制容器允许在指定 CPU 的核心。
--cpu-shares:按权重分配,每个 docker 容器默认的权重为 1024
docker run -itd --name cpu512 --cpu-shares 512 nginx
docker run -itd --name cpu2 --cpuset-cpus 2 nginx
docker run -itd --name cpu3 --cpus 1 nginx
内存限制
-m:限制容器能使用的最大内存大小,最小为 4M。
--memory-reservation:设置一个内存使用 soft limit 的大小。
--oom-kill-disable:发生 OOM 时,是否杀死容器。设置为 false 表示启用 oom,设置为 true 表示不启动 oom
docker run -it -m 200M --name mem200 nginx
八.容器监控
1.docker top
2.docker stats
九.容器编排
Docker Compose 能够在 Docker 节点上,以单引擎模式进行多容器应用的部署和管理
Docker Swarm 一个企业级的 Docker 安全集群,以及一个微服务应用编排引擎