• 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
  • 相关阅读:
    centos7下部署nginx+supervisor+netcore2.1服务器环境
    centos6.1配置nodejs运行环境
    centos下远程访问redis端口配置
    如何成为一名合格的软件测试师
    Maven之安装及构建简单项目 掠影
    JAVA语言单元测试框架——JUnit浅析
    软件测试 之 白盒测试 掠影
    软件测试 之 黑盒测试 掠影
    以一个闰年检测程序为例的非法字符异常输入检测
    学习心得——测试框架浅析
  • 原文地址:https://www.cnblogs.com/suminem/p/11097364.html
Copyright © 2020-2023  润新知