Docker自定义运行参数

2018-10-14 15:18

docker的镜像有时候作者给出的配置项很少。

而镜像内程序启动时,需要自定义的情况下如何传递参数?

比如以下docker启动命令:

docker run -d -p 3000:3000 -a account:passwd -v /opt/download:/downloads jpillora/cloud-torrent
invalid argument "account:passwd" for "-a, --attach" flag: valid streams are STDIN, STDOUT and STDERR
See 'docker run --help'.

docker 自带的参数在前面,比如-p 3000对应3000端口;-v 目录映射。

但是cloud-torrent有一个自带的-a参数,放在这里会被识别传递给docker,而docker的-a是attach的含义,明显启动失败了。

其实非常简单,将程序自带的参数放在命令最后就可以了,如下:

docker run -d -p 3001:3000 -v /home/jaxer/torrent:/downloads jpillora/cloud-torrent -a account:passwd


再比如

docker pull ghcr.io/shadowsocks/ssserver-rust:latest


docker run --name ssserver-rust \
--restart always \
-p 8388:8388/tcp \
-p 8388:8388/udp \
-v /ss/config.json:/etc/shadowsocks-rust/config.json \
-dit ghcr.io/shadowsocks/ssserver-rust:latest