docker 创建容器 运行时报错 Unrecognized option: --restart=always

在尝试使用Docker创建jenkins容器时遇到了启动失败的问题,错误信息显示不识别'--restart=always'选项。调整命令将该选项放置于jenkins/jenkins:lts镜像之后,容器成功运行。正确的命令格式确保了Docker运行jenkins容器时能够正确解析参数并保持容器始终运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker 安装 jenkins

创建 jenkins 容器

docker run --name jenkins -p 8080:8080 -p 50000:50000 -d -v /usr/local/docker/jenkins_home:/var/jenkins_home jenkins/jenkins:lts --restart=always

容器创建成功,但是运行失败

docker logs [id] 查看原因

[root@docker]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                      PORTS                    NAMES
1f51321a13ec        jenkins/jenkins:lts   "/sbin/tini -- /usr/…"   34 seconds ago      Exited (1) 33 seconds ago                            jenkins
0e69f9160e96        redis                 "docker-entrypoint.s…"   19 hours ago        Up 18 hours                 0.0.0.0:6379->6379/tcp   redis
[root@docker]# docker logs 1f51321a13ec
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
Exception in thread "main" java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at Main._main(Main.java:375)
	at Main.main(Main.java:151)
Caused by: java.lang.IllegalArgumentException: Unrecognized option: --restart=always
	at winstone.cmdline.CmdLineParser.parse(CmdLineParser.java:52)
	at winstone.Launcher.getArgsFromCommandLine(Launcher.java:364)
	at winstone.Launcher.main(Launcher.java:335)
	... 6 more

 

然后把 jenkins/jenkins:lts 放到了最后,就运行正常了

docke run 命令格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

docker run --name jenkins -p 8080:8080 -p 50000:50000 -d -v /usr/local/docker/jenkins_home:/var/jenkins_home --privileged=true --restart=always jenkins/jenkins:lts
[root@docker]# docker run --name jenkins -p 8080:8080 -p 50000:50000 -d -v /usr/local/docker/jenkins_home:/var/jenkins_home --privileged=true --restart=always jenkins/jenkins:lts
b44ee49f6019e443ecc323c2795374ae25ca1a02683e1a4714e526b80d2af694
[root@docker]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                              NAMES
b44ee49f6019        jenkins/jenkins:lts   "/sbin/tini -- /usr/…"   6 seconds ago       Up 4 seconds        0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   jenkins
0e69f9160e96        redis                 "docker-entrypoint.s…"   19 hours ago        Up 19 hours         0.0.0.0:6379->6379/tcp                             redis

 

 

### 正确配置并运行 Docker 容器 为了正确运行基于 `documentserver:8.0.1` 镜像Docker 容器,并完成指定的端口映射、重启策略及环境变量设置,可以按照以下方法操作。 #### 使用命令行启动容器 以下是完整的命令行示例: ```bash docker run -i -t -d \ --restart=always \ -p 9997:80 \ -e "JWT_ENABLED=false" \ onlyoffice/documentserver:8.0.1 ``` - 参数 `-p 9997:80` 将主机上的 9997 端口映射到容器内的 80 端口[^1]。 - 参数 `--restart=always` 设置容器的自动重启策略为始终重启。 - 参数 `-e "JWT_ENABLED=false"` 设置环境变量以禁用 JWT 功能。 #### 使用 docker-compose 文件定义服务 如果希望通过 `docker-compose.yml` 文件来管理该容器,则可创建如下文件内容: ```yaml version: '3' services: onlyoffice: image: onlyoffice/documentserver:8.0.1 container_name: documentserver restart: always ports: - "9997:80" environment: - JWT_ENABLED=false ``` 上述 YAML 文件中: - `image: onlyoffice/documentserver:8.0.1` 指定了使用的镜像版本。 - `ports` 字段完成了外部端口与内部端口之间的映射关系。 - `environment` 字段设置了必要的环境变量以满足需求。 通过执行以下命令即可启动服务: ```bash docker-compose up -d ``` 这会以后台模式启动容器,并应用所设定的各项参数。 #### 注意事项 确保本地环境中已安装 Docker 并正常工作。另外,在实际部署前需确认目标服务器防火墙允许访问对应端口号(此处为 9997),以便客户端能够成功连接至 Document Server 实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值