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