使用docker run后状态为Exited (1)

使用docker pull拉取的镜像docker.io/php:5.6-fpm,可以正常运行php,但是没有mysql扩展,无法连接mysql数据库。
编辑这个镜像,安装mysql扩展

root@e71eeffe4200:/var/www/html# cd /usr/local/bin
root@e71eeffe4200:/usr/local/bin# ./docker-php-ext-install mysql

使用docker commit得到一个新的镜像docker.io/php:5.6-fpm-diy
docker run这个新的镜像后,状态为Exited (1),使用docker logs也没有日志信息,请问大神们这个问题怎么排查

阅读 18.4k
3 个回答

你镜像里面指定的默认启动程序是bash,对于Linux下的shell程序来说,tty是必须的,所以启动容器的时候要加上-t参数

docker run -idt XXX

图片里圈住的是能正常运行的镜像

clipboard.png

我发现简单编辑一下镜像,commit后也是不能运行的,用bash运行是可以看到新的修改。
1.编辑镜像

[root@localhost ~]# docker run -t -i docker.io/richarvey/nginx-php-fpm:php5 /bin/bash
bash-4.3# touch test.php
bash-4.3# ls
index.php  test.php
bash-4.3# exit

2.提交镜像

[root@localhost ~]# docker commit -m "Added json gem" -a "Docker Newbee" 7e7ca2193730 docker.io/richarvey/nginx-php-fpm:shopv1
sha256:eb15df2b389df6cdc1c764832df62a641fec116b2ff063c87501419eb3aa6b22

3.新的镜像列表

clipboard.png
4.运行这个新的镜像

[root@localhost ~]# docker run --name web -p 80:80 --privileged=true -v /home/wwwroot:/var/www/html -d richarvey/nginx-php-fpm:shopv1
a8d204337a4c87243d3034a8b1332e11e943e4266b1333274487b771b53c605f
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              

docker logs也是没有日志返回,请问下这种编辑镜像的方式是不是有问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题