zoukankan      html  css  js  c++  java
  • docker 的简单使用(常用命令)

    1. 镜像

      1. 镜像管理

        1. 镜像列表 docker images

        2. 删除镜像 docker image rm imageid/imagename:tagname

        3. 根据Dockerfile创建镜像 docker build . 参数详情可参考: docker build

        4. 获取 容器 / 镜像的元数据 docker inspect [OPTIONS] NAME|ID [NAME|ID...]

        5. 给镜像重命名(打标签) docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

        6. 将指定镜像保存成 tar 归档文件 docker save [OPTIONS] IMAGE [IMAGE...]

        7. 导入使用 docker save 命令导出的镜像 docker load [OPTIONS]

        8. 从归档文件中创建镜像 docker import 与 docker export 相对应

        9. 经历多次 docker commit 后镜像过大的优化办法,可参考:docker容器commit的镜像越来越大怎么办?酱紫试试

          #进入容器内部后
          
          #查看各个目录体积
          du -h -d 1
          
          # 在根目录下把需要的东西打包:
          tar --exclude=base_img.tar -cvf base_img.tar .
          
          # 退出容器
          
          # 将打包的文件copy到宿主机
          docker cp [容器id]:/base_img.tar .
          
          # 导入容器
          cat base_img.tar|docker import - base_img
          
          # 查看容器情况
          # 直观上体积减少了
          docker images
          # history,只有一个记录:Imported from -
          docker history [新镜像id]
          
      2. 运行镜像-->启动容器
        docker run 参考地址:docker run
        例:
        docker run -dit
        -p 80:80 -p 443:443 -p 3306:3306 -p 9000:9000
        -v /xxx/:/www
        --name=name --privileged=true imagename:tagname /bin/bash

        1. -t: 在新容器内指定一个伪终端或终端
        2. -i: 允许你对容器内的标准输入 (STDIN) 进行交互
        3. -d: 后台模式运行
        4. -P: 随机端口映射,容器内部端口随机映射到主机的端口
        5. -p:端口映射,格式为:主机(宿主)端口:容器端口
        6. -v:目录映射,如上例所示,将本地目录 /xxx 映射到 容器内部的 /www
        7. --privileged=true container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。
        8. --net
          1. --net=bridge 这个是默认值,连接到默认的网桥。
          2. --net=host 该模式下的 Docker 容器会和 host 宿主机共享同一个网络 namespace,Docker Container的 IP 地址即为宿主机 eth0 的 IP 地址
          3. --net=container:NAME_or_ID 相关联的两个容器之间不存在网络隔离,而这两个容器又与宿主机以及除此之外其他的容器存在网络隔离
          4. --net=none 不为 Docker 容器构造任何网络环境
    2. 容器

      1. 启动/关闭 容器 docker start / stop

      2. 容器列表 docker ps

      3. 查看容器中运行的进程信息 docker top

      4. 列出指定的容器的端口映射 docker port

      5. 进入容器

        1. 连接到正在运行中的容器 docker attach [OPTIONS] CONTAINER 退出的时候,容器也会跟着退出
        2. docker exec [OPTIONS] CONTAINER COMMAND [ARG...] 退出的时候,容器不受影响
          1. docker exec -it containerId /bin/bash
      6. 从容器创建一个新的镜像 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

        1. -a :提交的镜像作者;
        2. -c :使用Dockerfile指令来创建镜像;
        3. -m :提交时的说明文字;
        4. -p :在commit时,将容器暂停
      7. 容器与主机之间的数据拷贝

        docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
        docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
        
      8. 容器删除 docker rm

    3. 镜像库

      1. 登录登出镜像库

        docker login [OPTIONS] [SERVER]
        docker logout [OPTIONS] [SERVER]
        // -u :用户名
        // -p :密码
        docker login -u 用户名 -p 密码
        
      2. 从镜像仓库中拉取或者更新指定镜像 docker pull

         docker pull [OPTIONS] NAME[:TAG|@DIGEST]
         // -a :拉取所有 tagged 镜像
         // --disable-content-trust :忽略镜像的校验,默认开启
        
      3. 从Docker Hub查找镜像

        docker search [OPTIONS] TERM
        // --automated :只列出 automated build类型的镜像;
        // --no-trunc :显示完整的镜像描述;
        // -f <过滤条件>:列出收藏数不小于指定值的镜像。
        
      4. 将本地的镜像上传到镜像仓库

        docker push [OPTIONS] NAME[:TAG]
        // --disable-content-trust :忽略镜像的校验,默认开启
        // 推送前需要先使用docker login 登录私有镜像库
        // 如果要将镜像推送到私有镜像库的话,需要先使用 docker tag 现将镜像重命名 例:
        // docker tag imageId xxxxx.com/lin_zone/lnmp:v1
        

    注:整理不易,如需转载请注明出处:https://www.cnblogs.com/zhuchenglin/p/15102860.html

  • 相关阅读:
    [Canvas]英雄可以射箭了
    [Canvas]人物型英雄出现(前作仅为箭头)
    day33_Spring学习回顾_01
    day33_Spring学习笔记_01
    MyEclipse中,当我们写一个类实现一个接口时,会自动生成重写该接口的方法,但是,方法的参数提示不够好,是什么原因导致的呢?该如何解决呢?
    使用Junit测试一个 spring静态工厂实例化bean 的例子,所有代码都没有问题,但是出现java.lang.IllegalArgumentException异常
    MyEclipse中如何变换查看项目文件夹
    实战网卡bond
    Centos7上使用官方YUM源安装Mysql
    CentOS 7上安装WordPress详细步骤
  • 原文地址:https://www.cnblogs.com/zhuchenglin/p/15102860.html
Copyright © 2011-2022 走看看