江湖救急,docker容器映射端口无法启动

docker镜像用的是服务器上的centos6.9,导入服务器镜像到本机的docker中,本机环境同为centos,但就只安装了docker,docker镜像里面集成了java、mysql、tomcat等环境,通过命令docker run -d -p 3306:3306 centos:6.9 ,将本机 3306端口映射到容器的 3306 端口,发现无法启动

图片说明

老哥,你这个容器实例都退出了,还怎么start啊?

而且,你运行容器时没有指定执行的命令啊,如果你在制作镜像时也没有指定entry的话,那就是一个什么也不做的容器,运行即结束。

直接删除此实例,然后运行一个新的实例,并指定运行的任务命令

$ # delete old container
$ docker rm <old-container-id>
$ # run a new instance
$ docker run --rm -d --name centos -p 3306:3306 centos:6.9 <command>

docker启动不了有几个原因,一个是程序挂了,一个是端口被占用了。
你可以看下日志 docker logs [id]
先确定原因。
如果端口那你懂得拉,如果是程序问题,那你自己玩咯

看你的端口像是mysql,你可以直接找个mysql的镜像,方便多了

最好设置下-v,不然容器删掉数据也就没了

关于端口映射的问题,可以看看这篇。
问题是一样的。

如何在 Docker 容器和宿主机之间共享数据
https://kalasearch.cn/community/tutorials/how-to-share-data-between-the-docker-container-and-the-host/

因为你后面没有加一个一直执行的命令,默认是/bin/bash。运行一下就退出来了。