Alpine Linux 中 Docker 开启远程管理
最近在使用Apline linux虚拟机中安装docker, 在开启远程管理端口时,发现Alpine的服务管理方式与Centos或者其他的不同, 其中希望使用systemd中的service设置开启2375端口需要使用init.d中的docker初始化启动配置文件,而不是sysem/docker.service文件。
首先开启Docker的远程访问方法有两种
1. 命令启动参数方法 在dockerd 的启动命令后 增加参数
dockd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
2 在linux 的启动服务脚本中 增加类似以上的参数, 根据不同操作系统找到docker.service文件,修改文件中的ExecStart参数
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
3. 本文说的时 Alpine Linux 的配置方法与以上两种不一样, Alpine管理服务是用RC的组件,如果要达到以上功能需要修改
/etc/init.d/docker
修改这个文件中的: command_args 在参数后 增加: -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock, 完整的配置文件类似
#!/sbin/openrc-run # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 command="${DOCKERD_BINARY:-/usr/bin/dockerd}" pidfile="${DOCKER_PIDFILE:-/run/${RC_SVCNAME}.pid}" command_args="-p \"${pidfile}\" ${DOCKER_OPTS} -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock" DOCKER_LOGFILE="${DOCKER_LOGFILE:-/var/log/${RC_SVCNAME}.log}" DOCKER_ERRFILE="${DOCKER_ERRFILE:-${DOCKER_LOGFILE}}" DOCKER_OUTFILE="${DOCKER_OUTFILE:-${DOCKER_LOGFILE}}" start_stop_daemon_args="--background \ --stderr \"${DOCKER_ERRFILE}\" --stdout \"${DOCKER_OUTFILE}\"" extra_started_commands="reload" rc_ulimit="${DOCKER_ULIMIT:--c unlimited -n 1048576 -u unlimited}" retry="${DOCKER_RETRY:-TERM/60/KILL/10}" depend() { need sysfs cgroups } start_pre() { checkpath -f -m 0644 -o root:docker "$DOCKER_LOGFILE" } reload() { ebegin "Reloading ${RC_SVCNAME}" start-stop-daemon --signal HUP --pidfile "${pidfile}" eend $? "Failed to stop ${RC_SVCNAME}" }
修改后用重启 docker daemon 就可以了