zoukankan      html  css  js  c++  java
  • Docker常用命令及脚本

    1、常用命令
    docker 
            search centos                                #搜索镜像     
            pull centos                                    #下载镜像
            save centos -o centos.tar centos  #保存并导出镜像文件
            load --input centos.tar                  #导入镜像文件
            rmi IMAGEID                                 #删除镜像
            ps                                                  #查看正在运行的容器
            ps -a -l                                           #查看所有容器                          
            images                                           #列出镜像
     
            run --name mydocker -h hostname -t -i -d centos /bin/bash   #-t(启动一个伪终端) -i(打开标准输入) -d 后台运行
            start mydocker                                                         #启动容器
            stop mydocker                                                         #停止容器
            attach                                                                       #进入容器,但是退出后容器停止
            esec mydocker ps                                                    #不进入容器执行命令
            esec -it mydocker /bin/bash                                   #类似nsenter命令
            inspect -f "{{ .State.Pid }}" mydocker                       #获取容器的PID
       inspect -f '{{.State.Pid}} {{.Id}}' $(docker ps -a -q)   #获取所有容器的PID
            nsenter -t PID -m -u -i -n -p                                   #独立命令(前边不用加docker)进入容器,且退                                                                                           出后不终止容器,需要yum util-linux
            
            rm                                                                             #删除容器
            rm -f                                                                         #删除正在运行的容器
            logs ID                                                                      #看日志
            
            port ID                                                                      #查看端口映射
            
    2、网络映射
        docker run -p
            IP:hostPort:containerPort:udp
        可以用-p -p指定多个端口映射
     
    3、数据管理
        数据卷
        docker run -d --name mydocker -v /data nginx                #在容器里挂载一个/data的目录
        docker inspect -f {{.Mounts}} mydocker                             #查看挂载的目录在宿主机的位置
        docker run -d --name mydocker -v /newdata:/data:ro(rw) nginx  #指定目录或文件挂载和权限,
                                                                                                                   源:目标;只读、读写等
        数据卷容器
        docker run -it --name mydocker --volumes-from mydocker2 centos /bin/bash
                                                                     #指定一个数据容器做源挂载到此容器,类似于网络共享硬盘
     
    4、可用命令
        docker kill/rm $(docker ps -a -q)            #杀死/删除所有docker容器
        systemctl daemon-reload                    #reload /etc/docker/daemon.json配置文件
     
    进入容器脚本
    #!/bin/sh
    
    if [ -e $(dirname "$0")/nsenter ]; then
      # with boot2docker, nsenter is not in the PATH but it is in the same folder
      NSENTER=$(dirname "$0")/nsenter
    else
      NSENTER=nsenter
    fi
    
    if [ -z "$1" ]; then
      echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]"
      echo ""
      echo "Enters the Docker CONTAINER and executes the specified COMMAND."
    #进入容器并执行指定命令
      echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."
    #如未指定命令,则在容器中运行交互式shell
    else
      PID=$(docker inspect --format "{{.State.Pid}}" "$1")
      if [ -z "$PID" ]; then
        exit 1
      fi
      shift
    
      OPTS="--target $PID --mount --uts --ipc --net --pid --"
    
      if [ -z "$1" ]; then
        # No command given.
        # Use su to clear all host environment variables except for TERM,
        # initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
        # and start a login shell.
    #"$NSENTER" $OPTS su - root
    "$NSENTER" $OPTS /bin/su - root
      else
        # Use env to clear all host environment variables.
        "$NSENTER" $OPTS env --ignore-environment -- "$@"
      fi
    fi
  • 相关阅读:
    web服务器-Apache
    nginx优化
    nginx下载限速
    nginx-URL重写
    HDU 5358 First One 求和(序列求和,优化)
    HDU 5360 Hiking 登山 (优先队列,排序)
    HDU 5353 Average 糖果分配(模拟,图)
    UVALive 4128 Steam Roller 蒸汽式压路机(最短路,变形) WA中。。。。。
    HDU 5348 MZL's endless loop 给边定向(欧拉回路,最大流)
    HDU 5344 MZL's xor (水题)
  • 原文地址:https://www.cnblogs.com/suminem/p/11097364.html
Copyright © 2011-2022 走看看