2020-02-21 15:40:40
许多Linux发行版本使用systemd来启动docker daemon。本文介绍如何自定义docker设置的一些示例。
docker安装后,开始启动docker daemon。
$ sudo systemctl start docker # 或旧的发行版本,使用 $ sudo service docker start
设置docker开机启动:
$ sudo systemctl enable docker
# 或旧的发行版本,使用
$ sudo chkconfig docker on
有几种方法来配置docker daemon的参数和环境变量。
推荐的方法是使用systemd的drop-in文件。这些是在/etc/systemd/system/docker.service.d目录的命名为
不过如果你使用包管理器安装了docker,那么可能EnvironmentFile已经存在,为了向后兼容,在/etc/systemd/system/docker.service.d放置一下.conf文件,内容如下:
[Service] EnvironmentFile=-/etc/sysconfig/docker EnvironmentFile=-/etc/sysconfig/docker-storage EnvironmentFile=-/etc/sysconfig/docker-network ExecStart= ExecStart=/usr/bin/dockerd $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $BLOCK_REGISTRY $INSECURE_REGISTRY
检查docker.service是否使用了EnvironmentFile:
$ systemctl show docker | grep EnvironmentFile EnvironmentFile=-/etc/sysconfig/docker (ignore_errors=yes)
或者找出service文件放置的位置:
$ systemctl show --property=FragmentPath docker FragmentPath=/usr/lib/systemd/system/docker.service $ grep EnvironmentFile /usr/lib/systemd/system/docker.service EnvironmentFile=-/etc/sysconfig/docker
你可以使用一个覆盖文件来自定义docker daemon选项。位于/usr/lib/systemd/system或/lib/systemd/system目录的文件包含了默认的选项,不应该去编辑它。
你可能想控制docker镜像,容器和volumes占用的硬盘空间,这个可以把它们移动到一个单独的分区。
在这个示例中,我们假设你的docker.service文件类似如下:
[Unit] Description=Docker Application Container Engine Documentation=http://docs.docker.com After=network.target [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process [Install] WantedBy=multi-user.target
我们可以在/etc/systemd/system/docker.service.d目录放置一个drop-in文件,包含如下内容:
[Service] ExecStart= ExecStart=/usr/bin/dockerd --graph="/mnt/docker-data" --storage-driver=overlay
可以在这个文件设置其它的环境变量,例如,HTTP_PROXY。
要更改ExecStart配置,可以在一行空的ExecStart的下一行放置一个新的ExecStart:
[Service] ExecStart= ExecStart=/usr/bin/dockerd --bip=172.17.42.1/16
此示例覆盖了默认的docker.service文件。
如果你的主机需要通过Http代理服务器连网,你需要在docker systemd service文件配置一个http代理。
1.为docker service创建一个systemd drop-in目录:
$ mkdir /etc/systemd/system/docker.service.d
2.创建/etc/systemd/system/docker.service.d/http-proxy.conf文件,添加HTTP_PROXY环境变量:
[Service] Environment="HTTP_PROXY=http://proxy.example.com:80/"
3.可以使用NO_PROXY指定不需要代理的一些地址:
Environment="HTTP_PROXY=http://proxy.example.com:80/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
4.重载配置
$ sudo systemctl daemon-reload
5.验证配置是否已经加载:
$ systemctl show --property=Environment docker Environment=HTTP_PROXY=http://proxy.example.com:80/
6.重启docker
$ sudo systemctl restart docker
如果你不是使用包管理器安装的docker,但想整合docker进systemd便于管理。可以从http://github.com/docker/docker/tree/master/contrib/init/systemd下载两个单元文件安装到/etc/systemd/system目录即可。
Docker run参考(8) – 退出状态码
05-15
Dockerfile参考(1) – 用法
05-22
Dockerfile参考(2) – 格式
05-31
Docker命令行参考(11) – Docker load从tar归档文件或STDIN导入镜像
07-20
Docker命令行参考(14) – Docker attach附着到一个运行中的容器
07-19
Docker命令行参考(18) – Docker exec在运行中的容器执行一个命令
06-02
Docker命令行参考(26) – Docker stats实时显示容器资源使用统计
06-21
Docker命令行参考(4) – Docker inspect显示容器或镜像相关信息
07-19
Docker命令行参考(6) – Docker commit提交容器的更改创建新镜像
07-15
Docker安装配置tomcat jdk
06-21
Docker用户指南(15) – 默认bridge网络 – 绑定容器端口到主机
03-31
Ubuntu 16.04 配置 Let’s Encrypt 实现站点 SSL
05-13
Docker-postfix, 在 Docker 容器中,使用smtp身份验证( sasldb ) 运行后缀
06-26
控制面板
05-03
管理swarm(9) – swarm实践 – 删除服务
05-19
配置haproxy在http请求头添加后端用户真实IP
07-05
31-009107 显示卡使用指南V1.0 (nVidia Ver2832)
06-06
31005252 主板使用指南GA-6WMI2 V10
04-17
31013018 硬盘保护控制台软件使用说明 V1.0
07-02
31013256 主板使用指南(I865PE A N)V1.0
04-27
Apowersoft手机管理大师(手机管理工具) v3.2.7.1破解版
68.3M
下载LED Player(LED显示屏控制软件) V6.1.5 官方版
196.5M
下载LEDVISION(卡莱特LED控制卡软件) v1.80.2232 官方版
46.21M
下载NovaL CT(显示屏控制软件) v5.3.0 官方免费版
74.4M
下载VNC Viewer (远程计算机控制软件)
7.3M
下载bosskey(窗口管理工具)v0.4.6.2 免费版
268KB
下载endnote x7(文献管理软件) v17.0.7072 破解版
114MB
下载h3c模拟器(网络虚拟环境配置工具) 1.5.2 正式版
59.1M
下载icloud控制面板下载
151MB
下载virtual drive manager(虚拟驱动器管理工具) V1.32 绿色版
0.21MB
下载叮当管家(客栈公寓管理助手) 1.6.6.1 最新版
32.61 MB
下载向日葵远程控制 v9.8.1.15686
4.37 MB
下载向日葵远程控制软件下载
6.26MB
下载啊呀远控管理 v6.0 官方版
7.74MB
下载家庭记账软件(家庭记账财务管理工具) v2.0 最新版
2.0M
下载旺财流水账(财务管理软件) 9.2 免费版
4.85MB
下载百卓优采云进销存(进销存管理工具) v5.6.69.2 免费版
28.8M
下载3dmax场景助手下载
0.17MB
下载HeidiSQL下载
10.1M
下载TeamViewer
21.6 MB
下载