出現(xiàn)的問題:
docker run 加上 -v 參數(shù)之后,容器就一直是 restarting 狀態(tài),去掉 -v 參數(shù)就可以正常運行
查找問題:
使用 docker logs 'containerId'
這個containerId,就是docker run之后返回的containerId
可以看到,是權限拒絕的問題
解決問題:
docker run時加上參數(shù) :加上--privileged=true
例如:
docker run -dit -e MYSQL_ROOT_PASSWORD=123456 --name saasdev-mysql --restart always -v /home/data/mysql:/var/lib/mysql --privileged=true -p 3308:3306 mysql:5.6
問題成功解決,容器正常啟動了
一點解釋:
使用該參數(shù),container內(nèi)的root擁有真正的root權限。
否則,container內(nèi)的root只是外部的一個普通用戶權限。
privileged啟動的容器,可以看到很多host上的設備,并且可以執(zhí)行mount。
甚至允許你在docker容器中啟動docker容器
補充:docker --restart=always 參數(shù) docker重啟容器自動重啟
創(chuàng)建容器時添加參數(shù) --restart=always 后,當 docker 重啟時,容器自動啟動。
使用方法:
docker container update --restart=always 容器名字
操作實例如下:
[root@localhost mnt]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
46cdfc60b7a6 nginx "nginx -g 'daemon ..." About a minute ago Up 42 seconds 80/tcp n3
79d55a734c26 nginx "nginx -g 'daemon ..." About a minute ago Up 42 seconds 80/tcp n2
f7b2206c019d nginx "nginx -g 'daemon ..." About a minute ago Up 46 seconds 80/tcp n1
[root@localhost mnt]# docker container update --restart=always n1
n1
[root@localhost mnt]# systemctl restart docker
[root@localhost mnt]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
46cdfc60b7a6 nginx "nginx -g 'daemon ..." 2 minutes ago Exited (0) 5 seconds ago n3
79d55a734c26 nginx "nginx -g 'daemon ..." 2 minutes ago Exited (0) 5 seconds ago n2
f7b2206c019d nginx "nginx -g 'daemon ..." 2 minutes ago Up 2 seconds 80/tcp n1
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。