Docker 后台进程参数-------更改Docker运行根目录的方法
参数 | 介绍 |
--api-enable-cors=false | 远程API调用。 |
-b, --bridge="" | 桥接一个系统上的网桥设备到 Docker 容器里,当使用 none 可以停用容器里的网络 |
--bip="" | 使用 CIDR 地址来设定网络桥的 IP。此参数和 -b 不能一起使用。 |
-D, --debug=false | 开启Debug模式。例如:docker -d -D |
-d, --daemon=false | 开启Daemon模式。 |
--dns=[] | 设置容器使用DNS服务器。例如: docker -d --dns 8.8.8.8 |
-dns-search=[] | 设置容器使用指定的DNS搜索域名。如: docker -d --dns-search example.com |
--exec-driver="native" | 设置容器使用指定的运行时驱动。如:docker -d -e lxc |
-G, --group="docker" | 在后台运行模式下,赋予指定的Group到相应的unix socket上。注意,当此参数 --group 赋予空字符串时,将去除组信息 |
-g, --graph="/var/lib/docker" | 设置Docker运行时根目录 |
-H, --host=[] | 设置后台模式下指定socket绑定,可以绑定一个或多个 tcp://host:port, unix:///path/to/socket, fd://* 或 fd://socketfd。如:$ docker -H tcp://0.0.0.0:2375 ps 或者$ export DOCKER_HOST="tcp://0.0.0.0:2375"$ docker ps |
-icc=true | 设置启用内联容器的通信。 |
--ip="0.0.0.0" | 设置容器绑定IP时使用的默认IP地址 |
--ip-forward=true | 设置启动容器的 net.ipv4.ip_forward |
--iptables=true | 设置启动Docker容器自定义的iptable规则 |
--mtu=0 | 设置容器网络的MTU值,如果没有这个参数,选用默认 route MTU,如果没有默认route,就设置成常量值 1500。 |
-p, --pidfile="/var/run/docker.pid" | 设置后台进程PID文件路径。 |
-r, --restart=true | 设置重启之前运行中的容器 |
-s, --storage-driver="" | 设置容器运行时使用指定的存储驱动,如,指定使用devicemapper,可以这样:docker -d -s devicemapper |
--selinux-enabled=false | 设置启用selinux支持 |
--storage-opt=[] | 设置存储驱动的参数 |
--insecure-registry | 设置自定义仓库地址,可以设置多个 例如: --insecure-registry 10.XX.XX.XX:5000 --insecure-registry 10.XX.XX.XX:5000 |
Docker 配置文件位置
Docker 的配置文件可以设置大部分的后台进程参数,在各个操作系统中的存放位置不一致
在 ubuntu 中的位置是:/etc/default/docker
在 centos6 中的位置是:/etc/sysconfig/docker
在 centos7 中的位置是:/etc/docker/
Centos6更改Docker运行根目录的方法
许多Linux用户在安装系统的时候,并没有分配/var 分区,而在安装Docker后才发现,它的默认存放位置是在 /var/lib/docker。因此导致了Docker在运行的很慢,那么要怎么解决这个问题呢?下面一起来看看解决的方法吧。
解决方法:
一是重装系统,这也太不人性化了,忽略。。。下次部署 Docker 宿主机的时候得好好分区下。
二是改变 Docker 默认存放路径。
查了下手册发现: -g, --graph=“/var/lib/docker” 设置Docker运行时根目录
使用 --graph 参数:docker --graph=/opt/docker -d,会自动生成/opt/docker目录(0700),并在该目录下创建 docker 相关文件
原来的镜像和容器都找不到了,因为路径改了(原来的镜像是在/var/lib/docker/devicemapper/devicemapper/{data,metadata})
Docker 的配置文件可以设置大部分的后台进程参数,在各个操作系统中的存放位置不一致
在 ubuntu 中的位置是:/etc/default/docker
在 centos 中的位置是:/etc/sysconfig/docker
我使用 CentOS 7,所以只需要更改 vim /etc/sysconfig/docker 成
OPTIONS=--graph=“/home/lib/docker” --selinux-enabled -H fd://
然后 service docker start 重新启动 Docker 的路径就改成 /home/lib/docker 了
上面的就是就是解决Docker存放位置的空间太小,导致Docker运行缓慢的方法了,有遇到这个问题的用户,就用这种方法进行解决吧。
Centos7更改Docker运行根目录配置:
/etc/docker/daemon.json
{
"graph": "/app/docker"
}
Docker指定multiple Insecure registry的方法
Docker如果需要从非SSL源管理镜像,需要配置Docker配置文件的insecury-registry参数,一般在如下位置修改其配置文件:
* /etc/sysconfig/docker
* /etc/init.d/docker
默认情况下,INSECURE_REGISTRY参数被注释不产生作用,可以根据实际需要配置该参数为目标非SSL加密的Docker Registry,例如:
INSECURE_REGISTRY='--insecure-registry 10.XX.XX.XX:5000'
如果需要同时对多个非SSL源进行显式标注,则加入多个insecure-registry标签即可,例如:
INSECURE_REGISTRY='--insecure-registry 10.XX.XX.XX:5000 --insecure-registry 10.XX.XX.XX:5000'
推送自定义镜像至目标Registry之前,需要对镜像进行TAG操作,如TAG中不包含registry的路径(端口)信息,则默认推送镜像至官方源(docker.io),如果需要推送到自定义的镜像源,则需要对目标进行TAG时带上自定义镜像repository的地址,如:
sudo docker tag docker.io/kibana:4.5 10.XX.XX.XXX:5000/example/sub/kibana:4.5
这条指令,即可将docker官方镜像源下载的docker.io/kibana:4.5镜像,标记为带自定义 repository路径的新的镜像(10.XX.XX.XXX:5000/example/sub/kibana:4.5)
标记完后,可以用sodu docker images检查镜像时候被正确指定repository信息及tag信息,确认无误后,即可推送至该自定义repository:
sudo docker push 10.XX.XX.XXX:5000/example/sub/kibana:4.5
正常情况下,该镜像已被推送至10.XX.XX.XXX:5000/example/sub路径。