qianlei90 / Blog

那些该死的文字呦
https://qianlei.notion.site
103 stars 20 forks source link

Docker问题集锦 #30

Open qianlei90 opened 7 years ago

qianlei90 commented 7 years ago

Docker问题集锦

Tags: 印象笔记 Docker

[toc]


1. 设置Docker Machine的启动命令

Docker Machine启动后会执行/var/lib/boot2docker/bootlocal.sh文件中的命令。

1.1 自动挂载目录

  1. 配置docker machine虚拟机,挂在工作目录/work
  2. 编辑docker machine中的/var/lib/boot2docker/bootlocal.sh文件,内容如下:
mkdir -p /work
mount -t vboxsf -o defaults,uid=`id -u docker`,gid=`id -g docker` work /work

1.2 设置静态IP

  1. 查看需要修改IP的网络接口,如eth2
  2. 编辑docker machine中的/var/lib/boot2docker/bootlocal.sh文件,内容如下:
ifconfig eth2 192.168.2.171 netmask 255.255.255.0 broadcast 192.168.2.255 up

2. 在Docker Machine中保存数据

Docker Machine中,/var/mnt/sda1/var的软链接,根据df -h查看到/dev/sda1挂载在/mnt/sda1/下,这部分的内容是保存在硬盘中的,重启后仍然存在。所以如果需要在Docker Machine中保存数据,不至于重启之后就不见,可以将数据保存在/mnt/sda1/目录下,然后在/var/lib/boot2docker/bootlocal.sh中软链接到所需的位置。

3. 为docker配置http代理

mkdir /etc/systemd/system/docker.service.d
echo '[Service]' > /etc/systemd/system/docker.service.d/http-proxy.conf
echo 'Environment="HTTP_PROXY=http://127.0.0.1:8118/" "NO_PROXY=localhost,127.0.0.1,docker.jcing.com"' >> /etc/systemd/system/docker.service.d/http-proxy.conf
systemctl daemon-reload
systemctl show --property=Environment docker # Environment=HTTP_PROXY=http://proxy.example.com:80/
systemctl restart docker

参考资料:docker proxy

4. 搜索docker仓库中的镜像

curl -X GET http://docker.jcing.com:5000/v1/search?q=infopub_base

5. 访问非ssl/tls(https)的registry服务

2017/03/22 更新

根据官方文档定义,可以在/etc/docker/daemon.json中配置除http_proxy以外的所有dockerd的配置,这是最标准的做法。参见dockerd

原方案

需要启用--insecure-registry参数,修改其中一个配置文件就好:

6. 宿主机网络问题

如果宿主机的网络调整过,网络服务被重启,那docker服务也需要重启,不然可能会影响到docker容器。踩了一回大坑。

- 完 - 2017/03/14