Docker 常见问题
程序员文章站
2022-05-12 17:28:20
...
一、容器异常停止,自动重启
启动时加--restart=always
docker run -tid --name isaler_v0.0.11 -p 8081:8080 --restart=always -v /alidata/iDocker/run/projectImages/isaler/v0.0.11/log:/usr/local/tomcat/logs isaler_v0.0.11
Flag Description
no 不自动重启容器. (默认value)
on-failure 容器发生error而退出(容器退出状态不为0)重启容器
unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
如果已经过运行的项目
如果已经启动的项目,则使用update更新:
docker update --restart=always xxx
二、删除容器报错
执行命令
docker rm mycentos
错误内容
Error response from daemon: You cannot remove a running container eb05f5b3b94bff9b49cd5194fce31d35ef01b8d89812c64410313a5522e33406. Stop the container before attempting removal or force remove
错误原因
因为该容器正在运行,所以无法删除。
解决方案
-
应该先把运行的容器停止,然后在执行删除命令
docker stop mycentos
-
强制删除该容器。
docker rm -f mycentos
三、删除镜像报错
执行命令
docker rmi centos
错误内容
Error response from daemon: conflict: unable to remove repository reference "centos" (must force) - container eb05f5b3b94b is using its referenced image 49f7960eb7e4
错误原因
因为还有基于该镜像启动的容器没有删除
解决方案
-
应该使用
docker ps -a
检查一下有没有基于该镜像运行的容器,如果有先停止,再删除。docker ps -a
docker stop mycentos
docker rm mycentos
-
强制删除该镜像。
docker rmi -f centos
四、启动容器报错
执行命令
docker run -tid --name mycentos centos
错误内容
docker: Error response from daemon: Conflict. The container name "/mycentos" is already in use by container "eb05f5b3b94bff9b49cd5194fce31d35ef01b8d89812c64410313a5522e33406". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'
错误原因
因为已经存在一个容器的名字与mycentos一致。
解决方案
-
更改其他名称
docker run -tid --name mycentos1 centos
五、容器中不能使用systemctl
解决方案
在容器启动时增加--privileged=true -v /sys/fs/cgroup:/sys/fs/cgroup
与/usr/sbin/init
即可
docker run -tid --name mycentos1 --privileged=true -v /sys/fs/cgroup:/sys/fs/cgroup centos /usr/sbin/init
六、容器时间与宿主机不一致
启动容器后,有些项目或者服务,需要使用服务器的时间,发现与宿主机的时间不一致。
解决方案
同步时间
docker cp /etc/localtime 3d5ed3420c2f:/etc/localtime
转载于:https://my.oschina.net/lwenhao/blog/2088016