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)該容器確實尚未啟動,狀態(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)限不允許,因為虛擬機系統(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不同,因為是后面來總結(jié)的,前面有些記錄找不到了,就重新模擬了一遍~~
2.關(guān)閉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添加規(guī)則,修改掛載目錄的特定權(quán)限
我是用第一種方法解決的~~~~
到此這篇關(guān)于Docker啟動容器后自動關(guān)閉問題解決的文章就介紹到這了,更多相關(guān)Docker啟動容器后自動關(guān)閉內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Docker Compose搭建 Confluence的教程
本文將介紹如何使用 Docker Compose 快速搭建 Confluence 、以及如何和 Traefik 一同使用,如果你看過之前的內(nèi)容,跟隨本文應(yīng)該能在十分鐘內(nèi)解決戰(zhàn)斗,感興趣的朋友快來看看吧2021-06-06docker Compose部署springboot+vue前端端分離
本文主要介紹了docker Compose部署springboot+vue前端端分離,文中通過示例代碼介紹的非常詳細,對大家的學(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運行docker:從下載到運行全流程
首先在本機或者服務(wù)器上下載docker并運行,本文目的旨在本機下載docker并打包,然后在服務(wù)器上進行加載,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-08-08