docker實戰(一):centos7 yum安裝docker
docker實戰(二):基礎命令篇
docker實戰(三):docker網絡模式(超詳細)
docker實戰(四):docker架構原理
docker實戰(五):docker鏡像及倉庫配置
docker實戰(六):docker 網絡及數據卷設置
docker實戰(七):docker 性質及版本選擇
認知升維: 道、法、術、器、勢
?
daemon.json 文檔說明:
? ? ? ? docker安裝后默認沒有daemon.json這個配置文件,需要進行手動創建,docker不管是在哪個平臺以何種方式啟動, 默認都會來這里讀取配置,使用戶可以統一管理不同系統下的 docker daemon 配置。
? ? ? ? 如果在daemon.json文件中進行配置,需要docker版本高于1.12,配置文件的默認徑為:/etc/docker/daemon.json ? ? ?
? ? ? ? 該文件作為 Docker Engine 的配置管理文件, 里面幾乎涵蓋了所有 docker 命令行啟動可以配置的參數。
? ? ? ? 相關參數的使用說明可以參閱如下,或者參閱官方文檔
配置詳解
?{
?
“api-cors-header”:"", 在引擎API中設置CORS標頭
?
“authorization-plugins”:[], 要加載的授權插件
?
“bridge”:"", 將容器附加到網橋
?
“cgroup-parent”:"", 為所有容器設置父cgroup
?
“cluster-store”:"", 分布式存儲后端的URL
?
“cluster-store-opts”:{}, 設置集群存儲選項(默認map [])
?
“cluster-advertise”:"", 要通告的地址或接口名稱
?
“debug”: true, 啟用調試模式,啟用后,可以看到很多的啟動信息。默認false
?
“default-gateway”:"", 容器默認網關IPv4地址
?
“default-gateway-v6”:"", 容器默認網關IPv6地址
?
“default-runtime”:“runc”, 容器的默認OCI運行時(默認為“ runc”)
?
“default-ulimits”:{}, 容器的默認ulimit(默認[])
?
“dns”: [“192.168.1.1”], 設定容器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”:"", 執行狀態文件的根目錄(默認為’/var/run/docker‘)
?
“fixed-cidr”:"", 固定IP的IPv4子網
?
“fixed-cidr-v6”:"", 固定IP的IPv6子網
?
“data-root”:"/var/lib/docker", Docker運行時使用的根路徑,默認/var/lib/docker
?
“group”: “”, UNIX套接字的組(默認為“docker”)
?
“hosts”: [], 設置容器hosts
?
“icc”: false, 啟用容器間通信(默認為true)
?
“ip”:“0.0.0.0”, 綁定容器端口時的默認IP(默認0.0.0.0)
?
“iptables”: false, 啟用iptables規則添加(默認為true) “ipv6”: false, 啟用IPv6網絡
?
“ip-forward”: false, 默認true, 啟用 net.ipv4.ip_forward ,進入容器后使用 sysctl -a | grepnet.ipv4.ip_forward 查看
?
“ip-masq”:false, 啟用IP偽裝(默認為true)
?
“labels”:[“nodeName=node-121”], docker主機的標簽,很實用的功能,例如定義:–label nodeName=host-121
?
“live-restore”: true, 在容器仍在運行時啟用docker的實時還原
?
“log-driver”:"", 容器日志的默認驅動程序(默認為“ json-file”)
?
“log-level”:"", 設置日志記錄級別(“調試”,“信息”,“警告”,“錯誤”,“致命”)(默認為“信息”)
?
“max-concurrent-downloads”:3, 設置每個請求的最大并發下載量(默認為3)
?
“max-concurrent-uploads”:5, 設置每次推送的最大同時上傳數(默認為5)
?
“mtu”: 0, 設置容器網絡MTU
?
“oom-score-adjust”:-500, 設置守護程序的oom_score_adj(默認值為-500)
?
“pidfile”: “”, Docker守護進程的PID文件
?
“raw-logs”: false, 全時間戳機制
?
“selinux-enabled”: false, 默認 false,啟用selinux支持
?
“storage-driver”:"", 要使用的存儲驅動程序
?
“swarm-default-advertise-addr”:"", 設置默認地址或群集廣告地址的接口
?
“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并做后臺進程與客戶端通訊的驗證
?
“userland-proxy”:false, 使用userland代理進行環回流量(默認為true)
?
“userns-remap”:"", 用戶名稱空間的用戶/組設置
?
“bip”:“192.168.88.0/22”, 指定網橋IP
?
“registry-mirrors”: [“https://192.498.89.232:89”], 設置鏡像加速
?
“insecure-registries”: [“120.123.122.123:12312”], 設置私有倉庫地址可以設為http
?
“storage-opts”: [
?
“overlay2.override_kernel_check=true”,
?
“overlay2.size=15G”
?
], 存儲驅動程序選項
?
“log-opts”: {
?
“max-file”: “3”,
?
“max-size”: “10m”,
?
}, 容器默認日志驅動程序選項
?
“iptables”: false 啟用iptables規則添加(默認為true) }
一、在/etc/docker/daemon.json 中添加加速器地址
國內從 DockerHub 拉取鏡像有時會遇到困難,可以配置一個/多個鏡像加速地址來加速鏡像拉取
[root@www ~]# ?vi /etc/docker/daemon.json
{
?? ?"registry-mirrors": [? ? ? ? ?"https://d8b3zdiw.mirror.aliyuncs.com",
? ? ? ? "https://reg-mirror.qiniu.com/",
?? ??? ?"https://hub-mirror.c.163.com/",
?? ??? ?"https://docker.mirrors.ustc.edu.cn/"
?? ?]
}
?二、重啟Docker服務
[root@www ~]# systemctl restart docker
[root@www ~]# systemctl status docker
查看docker啟動日志,看看是否啟動正常?
[root@www ~]# ?journalctl -u docker.service?
systemctl daemon-reload? ? ?#加載docker啟動文件
systemctl start docker? ? ? ? ? ?#啟動docker
systemctl stop?docker? ? ? ? ? ?#停止docker
systemctl restart docker? ? ? ? #重啟docker
systemctl enable?docker? ? ? ? #設置開機啟動
systemctl disable?docker? ? ? ? #禁用docker
systemctl status?docker? ? ? ? ? #查看狀態
?journalctl -u docker.service? ? #查看docker啟動服務日志
三、檢查加速器是否加載成功?
docker info? ?# 發現沒有使用自己配置的加速器
?發現Docker Root: /var/lib/docker? 加載的是這個更目錄
四、Docker鏡像默認的地址
mkdir /data/docker_data
修改docker的啟動配置文件下下圖
[root@www ]# vi?/usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd-current --graph /data/docker_data
[root@www docker_data]# cat /usr/lib/systemd/system/docker.service
[Service]
Type=notify
NotifyAccess=main
EnvironmentFile=-/run/containers/registries.conf
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
Environment=GOTRACEBACK=crash
Environment=DOCKER_HTTP_HOST_COMPAT=1
Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin
ExecStart=/usr/bin/dockerd-current --graph /data/docker_data \
? ? ? ? ? --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
? ? ? ? ? --default-runtime=docker-runc \
? ? ? ? ? --exec-opt native.cgroupdriver=systemd \
? ? ? ? ? --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
? ? ? ? ? --init-path=/usr/libexec/docker/docker-init-current \
? ? ? ? ? --seccomp-profile=/etc/docker/seccomp.json \
? ? ? ? ? $OPTIONS \
? ? ? ? ? $DOCKER_STORAGE_OPTIONS \
? ? ? ? ? $DOCKER_NETWORK_OPTIONS \
? ? ? ? ? $ADD_REGISTRY \
? ? ? ? ? $BLOCK_REGISTRY \
? ? ? ? ? $INSECURE_REGISTRY \
?? ? ?$REGISTRIES
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
Restart=on-abnormal
KillMode=process
[Install]
WantedBy=multi-user.target
[root@www docker_data]# cp -a /var/lib/docker/* /data/docker_data/
[root@www docker_data]# cd /data/docker_data
[root@www docker_data]# ll
總用量 0
drwx------. 2 root root ?6 8月 ?15 19:59 containers
drwx------. 3 root root 22 8月 ?15 19:59 image
drwxr-x---. 3 root root 19 8月 ?15 19:59 network
drwx------. 3 root root 40 8月 ?15 21:38 overlay2
drwx------. 4 root root 32 8月 ?15 19:59 plugins
drwx------. 2 root root ?6 8月 ?15 19:59 swarm
drwx------. 2 root root ?6 8月 ?15 21:16 tmp
drwx------. 2 root root ?6 8月 ?15 19:59 trust
drwx------. 2 root root 25 8月 ?15 19:59 volumes
[root@www docker_data]# systemctl daemon-reload
[root@www docker_data]# systemctl restart docker
[root@www docker_data]# docker info?
查看可知,默認鏡像地址已經更改
五、查看鏡像是否過來了
執行docker images
的命令,來獲取鏡像是否過來了
[root@www docker]# docker images
REPOSITORY ? ? ? ? ?TAG ? ? ? ? ? ? ? ? IMAGE ID ? ? ? ? ? ?CREATED ? ? ? ? ? ? SIZE
docker.io/nginx ? ? latest ? ? ? ? ? ? ?89da1fb6dcb9 ? ? ? ?2 weeks ago ? ? ? ? 187 MB
[root@www docker]# docker -v? ? ?# 查看docker版本
Docker version 1.13.1, build 7d71120/1.13.1
[root@www lib]# docker info
Containers: 0
?Running: 0
?Paused: 0
?Stopped: 0
Images: 1
Server Version: 1.13.1
Storage Driver: overlay2
?Backing Filesystem: xfs
?Supports d_type: true
?Native Overlay Diff: true
Logging Driver: journald
Cgroup Driver: systemd
Plugins:?
?Volume: local
?Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: docker-runc runc
Default Runtime: docker-runc
Init Binary: /usr/libexec/docker/docker-init-current
containerd version: ?(expected: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1)
runc version: 8891bca22c049cd2dcf13ba2438c0bac8d7f3343 (expected: 9df8b306d01f59d3a8029be411de015b7304dd8f)
init version: fec3683b971d9c3ef73f284f176672c44b448662 (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
?seccomp
? WARNING: You're not using the default seccomp profile
? Profile: /etc/docker/seccomp.json
?selinux
Kernel Version: 3.10.0-1160.71.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 8
Total Memory: 7.62 GiB
Name: www.yhchange.com
ID: PA6Y:GFFW:FMUX:CDEI:ZZWM:WMBC:PS73:SVNG:2AZU:XT6L:PUHZ:KGNY
Docker Root Dir: /data/docker_data
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
?127.0.0.0/8
Registry Mirrors:
?https://d8b3zdiw.mirror.aliyuncs.com
?https://reg-mirror.qiniu.com/
?https://hub-mirror.c.163.com/
?https://docker.mirrors.ustc.edu.cn/
Live Restore Enabled: false
Registries: docker.io (secure)
?