Docker启动容器后自动关闭问题解决

 更新时间:2024年07月03日 10:30:17   作者:网恋被骗四块五  
在使用Docker创建并启动mysql容器时,发现mysql容器并没有启动而是自动关闭了,本文主要介绍了Docker启动容器后自动关闭问题解决,具有一定的参考价值,感兴趣的可以了解一下

一、问题

在使用Docker创建并启动mysql容器时,发现mysql容器并没有启动而是自动关闭了

[root@localhost opt]# docker run -d -p 3306:3306  -v /opt/mysql/conf:/etc/mysql/conf.d  -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
c75b6514cbef3d195142919cd7b8201014c60c48c01ecc5bbf68a285f5d3e36b

通过一下命令查看发现该容器确实尚未启动,状态为Exited 参数说明 -a 表示查看未启动容器

[root@localhost opt]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                    NAMES
c75b6514cbef        mysql:5.7           "docker-entrypoint..."   4 minutes ago       Exited (1) 4 minutes ago                            mysql

二、原因分析

 通过查询容器日志发现如下问题

chown: changing ownership of '/var/lib/mysql/': Permission denied

 权限不允许,因为虚拟机系统是centos7的版本,而Centos7的安全Selinux禁止了一些安全权限,导致挂载信息时出现权限不足

三、三种解决办法

1.在docker run中加入 --privileged=true 给容器加上特定权限(建议这一种方式)

docker run -d --name mysqlvolume -v /opt/conf:/etc/mysql/conf.d -v /opt/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --privileged=true  c20987f18b13

此处的容器id可能与上面的id不同,因为是后面来总结的,前面有些记录找不到了,就重新模拟了一遍~~
2.关闭selinux

进入selinux配置文件

vim /etc/selinux/config

修改如下:SELINUX=disabled

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

3.在selinux添加规则,修改挂载目录的特定权限

我是用第一种方法解决的~~~~

到此这篇关于Docker启动容器后自动关闭问题解决的文章就介绍到这了,更多相关Docker启动容器后自动关闭内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Docker搭建MySQL双主复制详细教程

    Docker搭建MySQL双主复制详细教程

    Docker MySQL 双主复制是一种数据库高可用和数据冗余的技术,它利用 Docker 容器化的优势,在两个或多台MySQL服务器上同时运行并维护数据库副本,这两个主服务器可以互相同步数据更新,本文给大家介绍了Docker搭建MySQL双主复制详细教程,需要的朋友可以参考下
    2024-07-07
  • docker安装tomcat8的实现方法

    docker安装tomcat8的实现方法

    这篇文章主要介绍了docker安装tomcat8的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Docker搭建MySQ主从复制原理

    Docker搭建MySQ主从复制原理

    这篇文章主要介绍了Docker搭建MySQ主从复制原理,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 使用Docker Compose搭建 Confluence的教程

    使用Docker Compose搭建 Confluence的教程

    本文将介绍如何使用 Docker Compose 快速搭建 Confluence 、以及如何和 Traefik 一同使用,如果你看过之前的内容,跟随本文应该能在十分钟内解决战斗,感兴趣的朋友快来看看吧
    2021-06-06
  • Docker启动安装nacos的实现示例

    Docker启动安装nacos的实现示例

    本文主要介绍了Docker启动安装nacos的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • docker Compose部署springboot+vue前端端分离

    docker Compose部署springboot+vue前端端分离

    本文主要介绍了docker Compose部署springboot+vue前端端分离,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Docker利用busybox创建基础镜像(base image)

    Docker利用busybox创建基础镜像(base image)

    今天小编就为大家分享一篇关于Docker利用busybox创建基础镜像(base image),小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • docker如何在一个容器内部署多个服务

    docker如何在一个容器内部署多个服务

    这篇文章主要介绍了docker如何在一个容器内部署多个服务,思路是这样的首先拿到你的httpd,以及你的springBoot,合并他们的Dockerfile,然后打包,然后启动的时候启动多个端口(httpd的端口和你服务的端口),需要的朋友可以参考下
    2024-01-01
  • docker中安装quagga详细介绍

    docker中安装quagga详细介绍

    这篇文章主要介绍了docker中安装quagga详细介绍的相关资料,这里提供了详细的步骤,及注意事项,需要的朋友可以参考下
    2016-10-10
  • 在vscode中使用ssh运行docker:从下载到运行全流程

    在vscode中使用ssh运行docker:从下载到运行全流程

    首先在本机或者服务器上下载docker并运行,本文目的旨在本机下载docker并打包,然后在服务器上进行加载,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-08-08

最新评论