美文网首页Linux_Docker
Docker 容器化基础管理命令

Docker 容器化基础管理命令

作者: Joening | 来源:发表于2021-06-18 08:09 被阅读0次

    docker 安装:

    wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
    
    sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
    yum -y install docker-ce
    systemctl start docker 
    

    基础命令

    镜像:

    docker search  
    docker images
    docker pull
    docker push 
    docker save 
    docker load
    docker tag
    docker rmi
    

    容器:

    docker run
    docker start
    docker stop
    docker restart
    docker rm 
    docker  kill
    docker logs
    docker history
    docker exec -it  bash
    docker attach 
    docker build 
    docker stats
    docker commit 
    docker ps 
    docker ps -a
    docker ps -a -q  
    docker -s -a -l 
    docker rm -f `docker ps -a -q `
    docker history
    docker stats
    docker images -q | xargs docker rm -f !!! 危险
    
    docker ps -a |fgrep -i exit | awk '{print $1}' | xargs docker rm -f 
    
    docker rm -f `docker ps -a |fgrep -i exit | awk '{print $1}'`
     
    for name in `docker ps -a |fgrep -i exit | awk '{print $1}'`;do docker restart $name ; sleep 1 ;done
    
    echo user{1..100}  | xargs -n1 useradd 
    
    docker ps -a | grep -i exit | awk '{print $1}' | xargs docker restart 
    
    docker ps -a  |fgrep -i exit | awk '{print $1}' | xargs docker rm -f 
    
    time for name in {1..100};do docker run -dit  08b152afcfae ;done >> /dev/null
    
    docker ps -a |awk 'NR>1{print $1}' | xargs docker stop 
    
    docker ps -a -q | xargs docker start 
    
    
    

    docker run 启动参数

    -d  后台运行
    -i  交互式运行
    -t  tty终端
    --memory    限制容器可以使用的内存,如果没有指定 --memory-swap 那么默认和--memory一样大
    eg:  --memory 200m 没有--memory-swap参数,那么容器可以使用的内存为400m
    --memory-swap   设置swap区可以使用的内存大小,默认和--memory一样大,必须>=--memory
    --cpu-shares    表示占有cpu的相对权重
    eg:假设在同一台物理主机上启动了如下2个容器,容器1占用的cpu是容器2占有的cpu的2倍。
    同一台物理主机上
            
    容器1:
    docker run -d  --cpu-shares 10  容器名 
    容器2:
    docker run  -d  --cpu-shares 5  容器名 
    --name  给容器起的名字
    --net   指定容器运行的网络(也可以是自己创建的网络 docker network create --subnet=172.18.0.0/24  mynet)
    -v  指定volume的路径
        data volume模式:
         别名:容器里面的路径
        mysql:/var/lib/mysql
        /var/lib/mysql 为Dockerfile 中的volume的值
        使用  docker volume ls 命令查看
        本地创建 mysql 数据卷:docker create volume --name mysql
        bind mouting模式:
        本地路径:容器路径 
        /var/data:/var/容器目录
        本地目录和容器目录中的文件修改都会实时同步。
    --ip    指定容器的ip地址
    -P  随机映射一个端口
    -p  本地端口:容器端口。    将容器中的某个端口映射到本地的某个端口上
    -e  设置环境变量
    --volumes-from  参数用于连接某个指定容器的卷,从而可以访问到指定容器中的所有的卷。示例:blog_demo表示新容器中挂载了blog_demo容器中所有的卷。
    --rm    表示容器运行完成后自动删除
    -h  设置host主机的名称
    

    官方版

    Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]    
    02.  
    03.  -d, --detach=false         指定容器运行于前台还是后台,默认为false     
    04.  -i, --interactive=false   打开STDIN,用于控制台交互    
    05.  -t, --tty=false            分配tty设备,该可以支持终端登录,默认为false    
    06.  -u, --user=""              指定容器的用户    
    07.  -a, --attach=[]            登录容器(必须是以docker run -d启动的容器)  
    08.  -w, --workdir=""           指定容器的工作目录   
    09.  -c, --cpu-shares=0        设置容器CPU权重,在CPU共享场景使用    
    10.  -e, --env=[]               指定环境变量,容器中可以使用该环境变量    
    11.  -m, --memory=""            指定容器的内存上限    
    12.  -P, --publish-all=false    指定容器暴露的端口    
    13.  -p, --publish=[]           指定容器暴露的端口   
    14.  -h, --hostname=""          指定容器的主机名    
    15.  -v, --volume=[]            给容器挂载存储卷,挂载到容器的某个目录    
    16.  --volumes-from=[]          给容器挂载其他容器上的卷,挂载到容器的某个目录  
    17.  --cap-add=[]               添加权限,权限清单详见:http://linux.die.net/man/7/capabilities    
    18.  --cap-drop=[]              删除权限,权限清单详见:http://linux.die.net/man/7/capabilities    
    19.  --cidfile=""               运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法    
    20.  --cpuset=""                设置容器可以使用哪些CPU,此参数可以用来容器独占CPU    
    21.  --device=[]                添加主机设备给容器,相当于设备直通    
    22.  --dns=[]                   指定容器的dns服务器    
    23.  --dns-search=[]            指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件    
    24.  --entrypoint=""            覆盖image的入口点    
    25.  --env-file=[]              指定环境变量文件,文件格式为每行一个环境变量    
    26.  --expose=[]                指定容器暴露的端口,即修改镜像的暴露端口    
    27.  --link=[]                  指定容器间的关联,使用其他容器的IP、env等信息    
    28.  --lxc-conf=[]              指定容器的配置文件,只有在指定--exec-driver=lxc时使用    
    29.  --name=""                  指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字    
    30.  --net="bridge"             容器网络设置:  
    31.                                bridge 使用docker daemon指定的网桥       
    32.                                host    //容器使用主机的网络    
    33.                                container:NAME_or_ID  >//使用其他容器的网路,共享IP和PORT等网络资源    
    34.                                none 容器使用自己的网络(类似--net=bridge),但是不进行配置   
    35.  --privileged=false         指定容器是否为特权容器,特权容器拥有所有的capabilities    
    36.  --restart="no"             指定容器停止后的重启策略:  
    37.                                no:容器退出时不重启    
    38.                                on-failure:容器故障退出(返回值非零)时重启   
    39.                                always:容器退出时总是重启    
    40.  --rm=false                 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)    
    41.  --sig-proxy=true           设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理    
    

    dockerfile常用指令:

    • FROM 基础镜像
    • RUN 制作镜像过程中需要的执行命令(安装服务)
    • CMD 容器启动的时候执行的初始命令,容易被替换(启动服务)
    • ENTRYPOINT 容器启动的时候执行的初始命令,不能被替换,如果同时使用CMD和- - - ENTRYPOINT,cmd命令将作为ENTRYPOINT命令的参数
    • ADD 把dockerfile当前目录下的文件拷贝到容器中(自动解压tar包)
    • COPY 把dockerfile当前目录下的文件拷贝到容器中(不解压tar包)
    • WORKDIR 指定容器的默认工作目录(类似cd)
    • EXPOSE 镜像要暴露的端口(docker run -P大写)
    • VOLUME 持久化卷(自动创建随机名字的卷)
    • ENV 环境变量(ssh的密码,数据库的密码)
    • LABEL 镜像的属性标签
    • MAINTAINER 管理者标识

    docker网络

    • bridge 默认类型 NAT模式
    • host host类型,使用宿主机网络,网络性能最高
    • container 容器类型。使用其他容器共用网络,k8s中使用
    • none 没有网络,上不了外网

    相关文章

      网友评论

        本文标题:Docker 容器化基础管理命令

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