dockerrun-v挂载数据卷异常,容器状态⼀直是restarting的解决出现的问题:
docker run 加上 -v 参数之后,容器就⼀直是 restarting 状态,去掉 -v 参数就可以正常运⾏
查问题:
使⽤ docker logs 'containerId'
这个containerId,就是docker run之后返回的containerId
可以看到,是权限拒绝的问题exited
解决问题:
docker run时加上参数:加上--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问题成功解决,容器正常启动了
⼀点解释:
--privileged=true
使⽤该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的⼀个普通⽤户权限。
privileged启动的容器,可以看到很多host上的设备,并且可以执⾏mount。
甚⾄允许你在docker容器中启动docker容器
补充:docker --restart=always 参数 docker重启容器⾃动重启
创建容器时添加参数 --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
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望
不吝赐教。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。