查看是否已安装docker列表
yum list installed | grep docker
安装docker
yum -y install docker
启动docker
systemctl start docker
查看docker服务状态
systemctl status docker
容器运行后会持续产生日志,长期运行会有磁盘写满的风险,建议配置容器日志滚动策略,以下为容器日志滚动策略配置,若已配置则忽略。
- 新建配置文件: /etc/docker/daemon.json,若有则添加以下内容:
{ "log-driver":"json-file", "log-opts":{ "max-size" : "3g", "max-file": "2" } } |
上述配置为每个容器的日志文件最多存在2个,每个最大为3G,可根据需要自行配置。
- 重启docker守护进程。
docker rm $(docker ps -aq) systemctl daemon-reload systemctl restart docker |
先停止所有docker容器,再重启docker使日志配置生效
错误提示如下
[root@devops-101 ~]# journalctl -amu docker
-- Logs begin at Thu 2018-08-30 08:28:53 CST, end at Thu 2018-08-30 08:47:53 CST. --
Aug 30 08:29:07 devops-101 systemd[1]: Starting Docker Application Container Engine...
Aug 30 08:29:08 devops-101 dockerd-current[1102]: unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives are specified both as a flag and in the configuration file: log-dri
Aug 30 08:29:08 devops-101 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Aug 30 08:29:08 devops-101 systemd[1]: Failed to start Docker Application Container Engine.
这个含义应该是Docker启动的时候传入了命令行参数,同时也指定了配置文件,两个配置发生了冲突。那么就查看一下Docker服务启动文件。
[root@devops-101 ~]# vim /usr/lib/systemd/system/docker.service
[Service]
Type=notify
NotifyAccess=all
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
--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
可以看到启动的时候会从/etc/sysconfig/docker
中获取环境变量。
继续查看这个配置文件。
[root@devops-101 ~]# vim /etc/sysconfig/docker
# /etc/sysconfig/docker
# Modify these options if you want to change the way the docker daemon runs
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
if [ -z "${DOCKER_CERT_PATH}" ]; then
DOCKER_CERT_PATH=/etc/docker
fi
可以看到参数中默认了--log-driver=journald
,把这一段删掉就可以了。重启之后,就可以在/var/log/containers
下看到容器产生的日志文件了。