关于docker的一些tips

关于docker启动参数中–dns的配置

建议使用默认不配置的。使用kubernetes的时候,这个参数将会影响容器中的相关解析, 也会影响关于kubernetes的部署,容器中网络无法解析,ping不通等。举个例子:

  1. 配置为–dns 127.0.0.1, 本意是为了使用本地的dns缓存,但容器中可能也使用这个来解析,而kubernetes中容器自身无法提供这一解析
  2. 配置为–dns 8.8.8.8,可能通过hostname无法解析本地局域网中的服务器
  3. 配置为–dns 局域网网关, 这个可能是默认的方式了,但我刚开始部署的时候是在虚拟机中的,无法解析虚拟机网络中的其他服务器了。

自建仓库关于https:// /_ping 之类错误

  1. 如果服务器无法提供https的话,启动参数添加如:
--insecure-registry hub.4096.info:5000
  1. 如果确实只提供https的话,复制crt和privatekey文件到/etc/docker/certs.d/domain/目录下,对于letsencrypt生成的为fullchain.pem和privkey.pem。比如我自己的,复制到/etc/docker/certs.d/hub.4096.info

查看完整的启动命令

docker inspect  -f "{{.Name}} {{.Config.Cmd}}" $(docker ps -a -q)

清理log

需要root权限

echo "" > $(docker inspect --format='{{.LogPath}}' <container_name_or_id>)

ubuntu 16.04 (systemd控制)

启动参数配置在/lib/systemd/system/docker.service中配置