zoukankan      html  css  js  c++  java
  • 拾遗:Docker 基本应用

    https://wiki.gentoo.org/wiki/Docker

    检查内核内核选项

    exec /usr/share/docker/contrib/check-config.sh

    使用 btrfs 驱动

    #创建 /etc/docker/daemon.json,并添加如下内容
    {
        "storage-driver": "btrfs"
    } 

    安装

      最新版:curl -fsSL https://get.docker.com/ | sh

    [gentoo]

    • # groupadd docker
    • # gpasswd -a ${UserName} docker
    • app-emulation/docker
      • USE:btrfs -aufs -devicemapper

    下载镜像

    • docker search ImagesName
    • docker pull [Options] [Docker Registry Addr]/<Repositry>:<Tag>
      • Docker Registry地址:地址的格式一般是 <IP Addr>[:Port] ,默认地址是 Docker Hub;
      • 仓库名:两段式名称,既 <Docker Hub UserName>/<ImageName>,对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像。
    • 示例:docker pull jxus37ad.mirror.aliyuncs.com/yeasy/hyperledger-fabric-peer:latest
    • 设置加速镜像:在 docker.service 中 ExecStart=... 项中追加 --registry-mirror=https://jxus37ad.mirror.aliyuncs.com

    运行容器

    • docker run -i -t --rm --name=test -p 8080:80 yeasy/hyperledger-fabric-peer:latest bash
      • -i:交互式操作
      • -t:打开一个终端
      • --rm:退出后销毁该容器,此选项不能与 -d 同时使用
      • --name:指定容器名称
      • -p:指定主机与容器之间的端口影射,此处指将主机的 8080 端口影射到容器的 80 端口
      • bash:最后一部分指要执行的命令
      • -h HostName:配置容器主机名

      •  

        --link=ContainerName:Alias:添加到另一个容器的连接,在当前启动的容器内部使用 env 或查看 /etc/hosts 获取目标容器的网络信息

      • --dns=IP_ADDRESS 使用指定的DNS服务器

    数据卷[用于永久保存数据]

    • -v 创建数据卷及权限(也可以指定数据卷主机目录位置、容器挂载位置及权限)
      • 示例:docker run -d -P --name web -v [/tmp/webapp:]/opt/webapp[:rw] training/webapp python app.py,指将主机的 /tmp/webapp 目录挂载到 Container 中的 /opt/webapp 目录,充当数据卷,可指定权限(默认 rw)

    • docker rm -v ContainerName:删除容器时同时删除对应的数据卷,默认不删除
    • 挂载其它容器的数据卷,该容器的属主容器无需处于运行状态
      • docker run -d -v /dbdata --name test1 training/test,创建数据卷
      • docker run -d --volumes-from test1 --name test2 training/test,挂载 test1 容器的数据卷到 test2 容器

    执行操作

    • docker exec -it [ContainerName] [CMD]
      • 在已启动的容器中执行操作 
    • docker diff ContainerName
      • 查看容器中有变动的文件列表
    • docker history ImageName
      • 查看对指定镜像的操作历史 
    • docker rm [-f] ContainerName
      • 删除容器,-f 指强制删除运行中的容器
    • docker rmi ImageName
      • 删除镜像
    • docker start/stop/restart
    • docker ps [-a]
      • -a 同时查看处于 stop 状态的 Container
    • docker attach ContainName
      • 进入后台容器执行操作
    • docker logs ContainerName
      • 获取后台运行的容器的输出内容
    • docker export ContainerID [-o/--output FileName]
      • 导出快照,-o 输出到指定文件,如:docker export ContainerID -o xxx.tar.gz
    • docker import /PATH/TO/SnapName ImageName:tag 
      • 导入快照,PATH 可以为 http://.../xxx.tgz 等格式
    • docker load -i ImageFileName
      • 将本地镜像文件导入 docker 镜像库:将镜像解压之后再导入

    查询信息

    • docker images [IMAGENAME:TAG]
      • -f dangling=true:显示垃圾镜像
      • docker rmi $(docker images -q -f dangling=true):批量清除垃圾镜像
      • -a:同时显示中间层镜像,中间层镜像随其上层镜像同步消亡,无需手工操作
      • -q:输出精简信息,仅显示 IMAGE ID 字段
      • 示例:docker imagers -a -q debian
    • docker inspect ContainerName
      • 查询容器详细信息,输出格式为 JSON,数据卷在 “Mounts” 键对应的值中存储
    • docker port ContainerName Port
      • 查询容器端口上绑定的主机端口
    • docker stats [ContainerName]:类似于 top,动态监控主机容器运行时信息

    网络

    • docker -P:主机与容器之间随机影射,通过 docker ps [-l] 查看
    • docker -p IP:HostPort:ContainerPort|IP::ContainerPort|HostPort:ContainerPort
      • 可以同时指定容器可以使用的主机 IP 及主机端口,不指定 IP 指主机所有 IPaddr 均对容器开放
      • 可以使用多个 -p 同时操作多组 Ports 绑定
    • docker 默认的虚拟网桥 docker0 并没有加入主机的网卡,且容器的网关设置为 docker0 的 IP,因此是一个 NAT 网络,外部无法直接访问
      • (1)、将主机网卡绑定至 docker0
      • (2)、自建网桥,并在 docker.service 中添加 -b BRIDGE 或 --bridge=BRIDGE,使用自建的 bridge

    ...

  • 相关阅读:
    2020-08-11 题目题解
    N皇后问题
    逆序对(模板)
    归并选择(模板)
    快速选择(模板)
    快速排序(模板)
    vuecli4+elementui实现面包屑
    vue-路由导航(守卫)那些事
    vue-vant中ImagePreview 图片预览正确的打开方式
    Selenium 对表格table处理
  • 原文地址:https://www.cnblogs.com/hadex/p/6597927.html
Copyright © 2011-2022 走看看