dockerのインストールと使用

6094 ワード

文書ディレクトリ
  • 取付
  • 構成
  • 国内ミラー
  • 容器経路
  • daemon.json詳細
  • docker基本動作
  • インストール
    centos7
    yum install -y yum-utils device-mapper-persistent-data lvm2 #    
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #     
    yum -y install docker-ce #   docker    18.09.6-3.el7 
    systemctl enable docker #    
    systemctl start docker #  docker 
    

    deepin
    sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common #   apt    ,     HTTPS      。
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - #   Docker     GPG   
    sudo apt-get install docker-ce docker-ce-cli containerd.io -y   #        Docker Engine-Community  18.09.6~3-0~debian-stretch
    # apt-cache madison docker-ce #        
    # sudo apt-get install docker-ce= docker-ce-cli= containerd.io
    systemctl enable docker #    
    systemctl start docker #  docker 
    

    コンフィギュレーション
    国内ミラー
    
    vi /etc/docker/daemon.json 
    {
        "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
    }
    

    再起動docker有効
    systemctl daemon-reload
    systemctl restart docker
    

    コンテナパス
    vi/lib/systemd/system/docker.serviceはExecStartの後に追加します:–graph=/data/docker/ExecStart=/usr/bin/dockerd-H fd://--containerd=/run/containerd/containerd.sock--graph=/data/docker/
    再起動docker有効
    systemctl daemon-reload
    systemctl restart docker
    

    daemon.json詳細
    vi/etc/docker/daemon.json
    {
        "authorization-plugins": [],
        "data-root": "", 
         #Docker         ,           ,  /var/lib/docker
        "dns": [],  
         #    DNS   ,     /etc/resolv.conf      
        "dns-opts": [],
         #   /etc/resolv.conf   ,    
        "dns-search": [],
         #        ,        .example.com  ,        host      ,DNS    host,    host.example.com。  :     ,Docker          /etc/resolv.conf     。
        "exec-opts": [],
        "exec-root": "",
        "experimental": false,
        "features": {},
        "storage-driver": "",
        "storage-opts": [],
        "labels": [],
         #docker     ,      ,    :–label nodeName=host-121
        "live-restore": true,
        "log-driver": "",
        "log-opts": {},
        "mtu": 0,
        "pidfile": "",
         #Docker     PID  
        "cluster-store": "",
        "cluster-store-opts": {},
        "cluster-advertise": "",
        "max-concurrent-downloads": 3,
        "max-concurrent-uploads": 5,
        "default-shm-size": "64M",
        "shutdown-timeout": 15,
        "debug": true, 
         #  debug   ,   ,           。  false
        "hosts": [],
        #    hosts
        "log-level": "",
        "tls": true,  
         #   false,   TLS    
        "tlscacert": "", 
         #   ~/.docker/ca.pem,  CA     certificate    
        "tlscert": "", 
         #   ~/.docker/cert.pem ,TLS certificate    
        "tlskey": "",
         #  ~/.docker/key.pem,TLS key    
        "tlsverify": true,
         #  false,  TLS               
        "tls": true,
        "tlsverify": true,
        "tlscacert": "",
        "tlscert": "",
        "tlskey": "",
        "swarm-default-advertise-addr": "",
        "api-cors-header": "",
        "selinux-enabled": false, 
         #   false,  selinux  
        "userns-remap": "",
        "group": "",
         #Unix      ,  /var/run/docker.sock
        "cgroup-parent": "",
        "default-ulimits": {
            "nofile": {
                "Name": "nofile",
                "Hard": 64000,
                "Soft": 64000
            }
        },
        "init": false,
        "init-path": "/usr/libexec/docker-init",
        "ipv6": false,
        "iptables": false,
        "ip-forward": false,
        #  true,    net.ipv4.ip_forward ,       sysctl -a|grepnet.ipv4.ip_forward  
        "ip-masq": false,
        "userland-proxy": false,
        "userland-proxy-path": "/usr/libexec/docker-proxy",
        "ip": "0.0.0.0",
        "bridge": "",
        "bip": "",
        "fixed-cidr": "",
        "fixed-cidr-v6": "",
        "default-gateway": "",
        "default-gateway-v6": "",
        "icc": false,
        "raw-logs": false,
        "allow-nondistributable-artifacts": [],
        "registry-mirrors": [],
         #       ,     docker info    。
        "seccomp-profile": "",
        "insecure-registries": [],
         #  docker     
        "no-new-privileges": false,
        "default-runtime": "runc",
        "oom-score-adjust": -500,
        "node-generic-resources": ["NVIDIA-GPU=UUID1", "NVIDIA-GPU=UUID2"],
        "runtimes": {
            "cc-runtime": {
                "path": "/usr/bin/cc-runtime"
            },
            "custom": {
                "path": "/usr/local/bin/my-runc-replacement",
                "runtimeArgs": [
                    "--debug"
                ]
            }
        },
        "default-address-pools":[{"base":"172.80.0.0/16","size":24},
        {"base":"172.90.0.0/16","size":24}]
    }
    

    編集後にdockerを再起動すると有効になります
    systemctl daemon-reload
    systemctl restart docker.service
    

    基本操作
    docker pull  nginx #  nginx
    docker pull nginx:1.17.9 #     tag nginx
    docker run --name nginx-test -p 8080:80  -d nginx:1.17.9 #     docker  
    docker stop d68a62810b4d #     
    docker rm d68a62810b4d #     
    docker exec -it d68a62810b4d bash #