zoukankan      html  css  js  c++  java
  • docker命令

    -- 查看docker版本

    docker version

    -- 移除旧的版本

    $ sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-selinux 
                      docker-engine-selinux 
                      docker-engine

    -- 安装步骤
    -- 安装一些必要的系统工具

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2

    -- 添加软件源信息

    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    -- 更新 yum 缓存

    sudo yum makecache fast

    -- 安装 Docker-ce

    sudo yum -y install docker-ce

    -- 启动 Docker 后台服务

    sudo systemctl start docker

    -- 查看docker本地镜像
    -- REPOSITORY:表示镜像的仓库源
    -- TAG:镜像的标签

    docker images

    -- 查询镜像
    -- NAME:镜像仓库源的名称
    -- DESCRIPTION:镜像的描述
    -- OFFICIAL:是否docker官方发布

    docker search 关键字

    -- 获取镜像

    docker pull training/webapp

    -- 查看运行中的容器
    -- CONTAINER ID:容器ID
    -- NAMES:自动分配的容器名称
    -- -a 查看全部容器
    -- -l 查询最后一次创建的容器

    docker ps

    -- 删除镜像

    docker image rm 镜像

    -- 查看到容器的端口映射

    docker port 容器ID

    -- 可以查看容器内部的标准输出

    docker logs -f 容器ID

    -- 查看容器内部运行的进程

    docker top 容器ID

    -- 查看 Docker 的底层信息

    docker inspect 容器ID
    

    -- 删除容器

    docker rm 容器ID
    

    -- 查询容器名字是ub开头

    docker rm ` docker ps -a|grep ub|awk '{print $1}'`
    

    -- 启动容器

    docker start 容器ID
    

    -- 使用 docker run 命令来在容器内运行一个应用程序。输出Hello world

    docker run ubuntu:15.10 /bin/echo "Hello world"
    

    -- 通过docker的两个参数 -i -t,让docker运行的容器实现"对话"的能力
    -- -t:在新容器内指定一个伪终端或终端。
    -- -i:允许你对容器内的标准输入 (STDIN) 进行交互。
    -- -d:让容器在后台运行。
    -- -P:是容器内部端口随机映射到主机的高端口。
    -- -p:是容器内部端口绑定到指定的主机端口。
    -- --name:标识来命名容器
    -- exit退出容器终端
    -- 使用 REPOSITORY:TAG 来定义不同的镜像

    docker run -i -t ubuntu:15.10 /bin/bash
    

    -- 在docker容器中运行一个 Python Flask 应用来运行一个web应用

    docker run -d -P training/webapp python app.py
    

    -- 通过 -p 参数来设置不一样的端口

    docker run -d -p 5000:5000 training/webapp python app.py
    

    -- 进入一个启动的容器

    docker exec -it 容器ID /bin/bash
    

    -- 默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上 /udp  

    docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
    

    -- 可以使用 --name 标识来命名容器

    docker run -d -P --name runoob training/webapp python app.py
    

    -- 创建一个以进程方式运行的容器 

    docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    

    -- 查看IP地址

    yum install net-tools -y

    -- 容器内存设置

    -m 或 –memory:设置内存的使用限额,例如 100M, 2G。
    –memory-swap:设置 内存+swap 的使用限额。
    列如:
    docker run -m 200M --memory-swap=300M ubuntu
    其含义是允许该容器最多使用 200M 的内存和 100M 的 swap。默认情况下,上面两组参数为 -1,即对容器内存和 swap 的使用没有限制。
    --memory-swap 介绍
    只有当--memory设置之后,--memory-swap 才会生效
    1、如果--memory-swap设置为正整数,那么这两个--memory和 --memory-swap必须设置。--memory-swap表示可以使用的内存和交换总量,并--memory控制非交换内存使用的数量。因此,如果--memory="300m"和--memory-swap="1g",容器可以使用300m的内存和700m(1g - 300m)交换。
    2、如果--memory-swap设置为0,则忽略该设置,并将该值视为未设置。
    3、如果--memory-swap设置为与值相同的值--memory,并且--memory设置为正整数,则不使用swap。
    4、如果--memory-swap未设置并且--memory已--memory设置,则如果主机容器配置了交换内存,则容器可以使用两倍于设置的交换。例如,如果--memory="300m"和--memory-swap未设置,容器可以使用300m的内存和600m的交换。
    5、如果--memory-swap明确设置为-1,则允许容器使用无限制交换,最多可达主机系统上可用的数量。
    防止容器使用交换
    如果--memory和--memory-swap设置为相同的值,则可以防止容器使用任何交换。这是因为--memory-swap可以使用的组合内存和交换量,而--memory只是可以使用的物理内存量。
    --memory-swappiness 细节
    值为0将关闭匿名页面交换。
    值100将所有匿名页面设置为可交换。
    默认情况下,如果未设置--memory-swappiness,则值将从主机继承。
    --kernel-memory 细节
    内核内存限制以分配给容器的总内存表示。请考虑以下方案:
    1、无限内存,无限内核内存:这是默认行为。
    2、无限内存,有限内核内存:当所有cgroup所需的内存量大于主机上实际存在的内存量时,这是合适的。您可以将内核内存配置为永远不会覆盖主机上可用的内容,而需要更多内存的容器需要等待它。
    3、有限的内存,无限的内核内存:整体内存有限,但内核内存不受限制。
    4、有限的内存,有限的内核内存:限制用户和内核内存对于调试与内存相关的问题非常有用。如果容器正在使用意外数量的任一类型的内存,则它会耗尽内存而不会影响其他容器或主机。在此设置中,如果内核内存限制低于用户内存限制,则内核内存不足会导致容器遇到OOM错误。如果内核内存限制高于用户内存限制,则内核限制不会导致容器遇到OOM。
    gitlab容器配置
    docker run -d -p 9443:443 -p 9080:80 -p 9022:22 
    --name gitlab --restart always 
    --volume /software/gitlab/config:/etc/gitlab 
    --volume /software/gitlab/logs:/var/log/gitlab 
    --volume /software/gitlab/data:/var/opt/gitlab 
    -m 2g 
    --memory-swap=2200m 
    gitlab/gitlab-ce:latest

    -- 查看容器运行状态命令

    持续监控
    docker stats
    只返回当前的状态
    docker stats --no-stream
    只输出指定的容器
    docker stats   --no-stream   容器ID/Name
    格式化输出的结果
    docker stats --format  “table {{.Name}}	{{.CPUPerc}}	{{.MemUsage}}" 
    显示列说明
    .Container  根据用户指定的名称显示容器的名称或 ID
    .Name       容器名称
    .ID         容器 ID
    .CPUPerc    CPU 使用率
    .MemUsage   内存使用量
    .NetIO      网络 I/O     
    .BlockIO    磁盘 I/O
    .MemPerc    内存使用率
    .PIDs       PID 号

     

     对运行中的容器设置限制

    例如:docker container update nginx --cpus="2" --memory="8g" --memory-swap="-1"

     docker container update  gitlab  --memory="500m"  --memory-swap="800m"

      

      

      

     

      

     

  • 相关阅读:
    【腾讯敏捷转型NO.1】敏捷是什么鬼?
    【敏捷实用工具】JIRA介绍以及使用方法
    SpringCloud学习总结(三)——案例环境搭建
    SpringCloud学习总结(二)——SpringCloud微服务概述
    SpringCloud学习总结(一)——微服务基础知识
    IDEA jrebel 破解
    IDEA的几个常用配置,日常开发必备。
    java中实体类的区别
    zookeeper 学习总结(四)——基本使用
    zookeeper 学习总结(三)——linux上部署单机以及集群
  • 原文地址:https://www.cnblogs.com/xuchen0117/p/11966737.html
Copyright © 2011-2022 走看看