美文网首页
docker 容器管理应用

docker 容器管理应用

作者: 霸道ki | 来源:发表于2020-03-11 17:05 被阅读0次

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:容器挂载在宿主机的文件(目录)会覆盖容器内原有的文件(目录)

相关文章

  • 使用 Docker 运行 Redis 服务

    环境准备 Docker:提供隔离容器环境,可运行应用程序。 Docker compose:运行多个容器服务的管理工...

  • Docker Swarm服务调度分析

    本文主要介绍 docker swarm 对于容器应用的调度管理分析。Docker swarm 1.12.0 是一...

  • 苹果软件集合(一)

    虚拟机 Docker- 开源的应用容器引擎。 DockStation- 管理 Docker 项目的程序。 Para...

  • docker-compose的安装和卸载

    使用docker-compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 docker 的应用程序...

  • Robot Framework环境Docker化

    Docker是一个操作系统容器管理工具,通过将应用打包到操作系统容器里面,从而能轻松管理和部署应用。将Robot ...

  • 带着问题学习Kubernetes第一篇-K8S架构是怎样?

    随着Docker技术的流行,云原生应用和容器调度管理系统也跟着随之流行。由于单机的Docker引擎和单一的容器镜像...

  • 1.docker入门

    1.简介Docker是一个开源的应用容器引擎;是一个轻量级容器技术;Docker本身是一个容器运行载体或称之为管理...

  • docker

    Docker 面试问答 1. 什么是 Docker 容器? Docker 容器 在应用程序层创建抽象并将应用程序及...

  • 搭建高可用的Harbor

    Harbor简介 Docker容器应用的开发和运行离不开可靠的镜像管理,Docker官方提供了原生的Registr...

  • 将日志输出到Docker容器外

    1.1 使用 Docker 容器日志 我们可以利用 docker logs 命令查看 Docker 容器内部应用程...

网友评论

      本文标题:docker 容器管理应用

      本文链接:https://www.haomeiwen.com/subject/azchjhtx.html