3、docker run常见问题

本文介绍了如何解决Docker容器名称冲突和端口错误的问题。当尝试使用已被占用的容器名称时,需要先停止并删除现有容器才能重用。此外,若运行容器时端口冲突,需确保主机端口与容器端口正确映射,否则容器虽能启动但可能无法访问。通过`docker ps`检查容器状态,使用`docker stop`和`docker rm`命令管理容器,可以有效解决这些问题。
摘要由CSDN通过智能技术生成

接上一篇docker run 

1、相同容器名称问题;

有时我们在运行一个镜像时后发生错误提示;

[root@localhost ~]# docker run --name mytomcat -d tomcat:latest
docker: Error response from daemon: Conflict. The container name "/mytomcat" is already in use by container "e6c24833399a91a9e3de34024914c599333c806aa10256cc34e50fb236bda2a7". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.

我们从错误提示中可以看到,说明已经存在名称是mytomcat的容器,先查询一下是否存在;

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
d612eb7d2a8f        tomcat:latest       "catalina.sh run"   10 minutes ago      Up 10 minutes       8080/tcp            mytomcat2
e6c24833399a        tomcat:latest       "catalina.sh run"   14 minutes ago      Up 14 minutes       8080/tcp            mytomcat

果真在运行的容器中已存在,我们先关停一下再重新启动试试;

[root@localhost ~]# docker stop e6c24833399a
e6c24833399a
[root@localhost ~]# docker run --name mytomcat -d tomcat:latest
docker: Error response from daemon: Conflict. The container name "/mytomcat" is already in use by container "e6c24833399a91a9e3de34024914c599333c806aa10256cc34e50fb236bda2a7". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.

说明关闭还不行,我们来移除这个容器吧;

[root@localhost ~]# docker rm e6c24833399a
e6c24833399a
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
d612eb7d2a8f        tomcat:latest       "catalina.sh run"   18 minutes ago      Up 18 minutes       8080/tcp            mytomcat2
[root@localhost ~]# docker run --name mytomcat -d tomcat:latest
bfe0ad01bbea4c6a0268e3b17b0ef5c174e35feef1a07dbbbc554912eec9f31c
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
bfe0ad01bbea        tomcat:latest       "catalina.sh run"   10 seconds ago      Up 9 seconds        8080/tcp            mytomcat
d612eb7d2a8f        tomcat:latest       "catalina.sh run"   18 minutes ago      Up 18 minutes       8080/tcp            mytomcat2

2、运行时端口错误

OPTIONS说明:

  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

举例说明:

以实际运行的jar为例,部署时Dockerfile文件内容如下

[root@localhost home]# cat Dockerfile 
FROM java:8
ADD eureka-server-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8761
ENTRYPOINT ["sh","-c","java -jar /app.jar"]

 注意上面的EXPOSE 8761,当我们运行时,要确保容器端口也是8761,宿主机端口可换成其他。

docker run -d --name eureka4 -p 8762:8761 register2

如果容器端口也是8762,那么容器可以正常启动,但无法被访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值