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 就可以了

 

posted @ 2020-05-27 14:57  左右杂物  阅读(861)  评论(0编辑  收藏  举报