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通过Dockerfile构建mysql镜像的方法

    docker通过Dockerfile构建mysql镜像的方法

    这篇文章主要介绍了docker通过Dockerfile构建mysql镜像,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • docker清理大杀器/docker的overlay文件占用磁盘太大的解决

    docker清理大杀器/docker的overlay文件占用磁盘太大的解决

    这篇文章主要介绍了docker清理大杀器/docker的overlay文件占用磁盘太大的解决操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 优化Docker镜像安全性的12个技巧总结

    优化Docker镜像安全性的12个技巧总结

    docker是虚拟化容器技术,有三个主要概念,镜像(类)、容器(对象)、仓库,docker就是类似VM虚拟机一样的虚拟技术,体积小,运行速度快,下面这篇文章主要给大家介绍了关于优化Docker镜像安全性的12个技巧,需要的朋友可以参考下
    2022-03-03
  • 一文快速入门Docker推荐

    一文快速入门Docker推荐

    这篇文章主要介绍了一文快速入门Docker推荐,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Docker容器添加新端口映射的方法与详细步骤

    Docker容器添加新端口映射的方法与详细步骤

    这篇文章主要给大家介绍了关于Docker容器添加新端口映射的方法与详细步骤,Docker 端口映射即映射容器内应用的服务端口到本机宿主机器,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • 使用Dockerfile.dockerignore提升Docker镜像构建速度

    使用Dockerfile.dockerignore提升Docker镜像构建速度

    这篇文章主要为大家介绍了使用Dockerfile.dockerignore提升Docker镜像构建速度,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
    2023-10-10
  • Docker和镜像的操作方法

    Docker和镜像的操作方法

    这篇文章主要介绍了Docker和镜像的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 使用Docker搭建MySQL数据库服务的方法详解

    使用Docker搭建MySQL数据库服务的方法详解

    在现代应用程序开发中,使用数据库是必不可少的,文将介绍如何使用Docker搭建MySQL数据库服务,让你在本地环境中快速部署一个MySQL实例,感兴趣的可以了解下
    2024-03-03
  • Docker Machine创建Azure虚拟主机

    Docker Machine创建Azure虚拟主机

    这篇文章主要为大家详细介绍了Docker Machine创建Azure虚拟主机的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 详解基于docker搭建lanproxy内网穿透服务

    详解基于docker搭建lanproxy内网穿透服务

    这篇文章主要介绍了详解基于docker搭建lanproxy内网穿透服务,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04

最新评论