Docker啟動容器后自動關(guān)閉問題解決
一、問題
在使用Docker創(chuàng)建并啟動mysql容器時,發(fā)現(xiàn)mysql容器并沒有啟動而是自動關(guān)閉了
[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
通過一下命令查看發(fā)現(xiàn)該容器確實(shí)尚未啟動,狀態(tài)為Exited 參數(shù)說明 -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
二、原因分析
通過查詢?nèi)萜魅罩景l(fā)現(xiàn)如下問題
chown: changing ownership of '/var/lib/mysql/': Permission denied
權(quán)限不允許,因?yàn)樘摂M機(jī)系統(tǒng)是centos7的版本,而Centos7的安全Selinux禁止了一些安全權(quán)限,導(dǎo)致掛載信息時出現(xiàn)權(quán)限不足
三、三種解決辦法
1.在docker run中加入 --privileged=true 給容器加上特定權(quán)限(建議這一種方式)
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不同,因?yàn)槭呛竺鎭砜偨Y(jié)的,前面有些記錄找不到了,就重新模擬了一遍~~
2.關(guān)閉selinux
進(jìn)入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添加規(guī)則,修改掛載目錄的特定權(quán)限
我是用第一種方法解決的~~~~
到此這篇關(guān)于Docker啟動容器后自動關(guān)閉問題解決的文章就介紹到這了,更多相關(guān)Docker啟動容器后自動關(guān)閉內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker安裝tomcat8的實(shí)現(xiàn)方法
這篇文章主要介紹了docker安裝tomcat8的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02使用Docker Compose搭建 Confluence的教程
本文將介紹如何使用 Docker Compose 快速搭建 Confluence 、以及如何和 Traefik 一同使用,如果你看過之前的內(nèi)容,跟隨本文應(yīng)該能在十分鐘內(nèi)解決戰(zhàn)斗,感興趣的朋友快來看看吧2021-06-06Docker啟動安裝nacos的實(shí)現(xiàn)示例
本文主要介紹了Docker啟動安裝nacos的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09docker Compose部署springboot+vue前端端分離
本文主要介紹了docker Compose部署springboot+vue前端端分離,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Docker利用busybox創(chuàng)建基礎(chǔ)鏡像(base image)
今天小編就為大家分享一篇關(guān)于Docker利用busybox創(chuàng)建基礎(chǔ)鏡像(base image),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12在vscode中使用ssh運(yùn)行docker:從下載到運(yùn)行全流程
首先在本機(jī)或者服務(wù)器上下載docker并運(yùn)行,本文目的旨在本機(jī)下載docker并打包,然后在服務(wù)器上進(jìn)行加載,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-08-08