docker 问题

 阿里云镜像加速器设置:

[root@iZf8z8mvkh90g1k6xpnkleZ ~]# cat /etc/docker/daemon.json 
{
    "registry-mirrors": [
        "https://xxxxxx.mirror.aliyuncs.com",
        "https://mirror.ccs.tencentyun.com",
        "https://mirror.baidubce.com"
    ]
}

 

Docker centos7 springboot 启动 console 日志中文乱问题 - 20240613

解决方案:在启动命令中添加 -Dfile.encoding=UTF-8

#!/bin/bash
nohup java -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED -jar @MODULE.jar --spring.profiles.active=@ENV >> /blade/log/@MODULE-nohup.log 2>&1

 

  • linux
CentoOS-7.2
  •  docker 启动异常一
Jan 07 00:49:42 localhost.jarvis dockerd-current[53365]: time="2021-01-07T00:49:42.965686913+08:00" level=warning msg="could not change group /var/run/docker.sock to docker: group docker not found"
Jan 07 00:49:42 localhost.jarvis dockerd-current[53365]: time="2021-01-07T00:49:42.969009357+08:00" level=info msg="libcontainerd: new containerd process, pid: 53371"
Jan 07 00:49:44 localhost.jarvis dockerd-current[53365]: Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel 
or disable selinux in docker (--selinux-enabled=false) Jan 07 00:49:44 localhost.jarvis systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE Jan 07 00:49:44 localhost.jarvis systemd[1]: Failed to start Docker Application Container Engine.

解决办法:vim /etc/sysconfig/docker

配置: --selinux-enabled=false

 ————————————————

  • docker 启动异常二
Jan 07 00:47:29 localhost.jarvis dockerd-current[53283]: unable to configure the Docker daemon with file /etc/docker/daemon.json: EOF 
Jan 07 00:47:29 localhost.jarvis systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jan 07 00:47:29 localhost.jarvis systemd[1]: Failed to start Docker Application Container Engine.
-- Subject: Unit docker.service has failed

解决办法:vim /etc/docker/daemon.json 配置为空:

{

}

 ————————————————

  • docker 启动异常三

CentOS7的docker下载下来启动失败问题(Job for docker.service failed because the control process exited with)的解决方案

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

如果忽略错误进行操作,就会出现:(因为 docker 就没有启动成功

解决方案:

  1. vim /etc/sysconfig/docker-storage

将配置文件修改为:

DOCKER_STORAGE_OPTIONS="--selinux-enabled --log-driver=journald --signature-verification=false"

  2. vim /etc/docker/daemon.json

写入指定参数:

{ "storage-driver": "devicemapper" }

  3. 然后重启docker服务

systemctl restart docker

没有出现错误信息,说明问题已经解决!

————————————————

  • docker 启动异常四

在安装完docker以后,当你使用 docker run 一个容器时;报错:

eg:docker run hello-world
报错信息:
container_linux.go:235: starting container process caused “process_linux.go:258: 
applying cgroup configuration for process caused “Cannot set property TasksAccounting, or unknown property.”” /usr/bin/docker-current: Error response from daemon: oci runtime error:
container_linux.go:235: starting container process caused "process_linux.go:258: applying cgroup configuration for process caused "Cannot set property TasksAccounting, or unknown prop

解决办法: 更新一下 yum ; yum update 即可 !

原文链接:https://blog.csdn.net/ljlfather/article/details/105462376

————————————————

  • 在关闭并放置centos 的防火墙重启之后,启动 docker 容器发现开始报错:

[root@localhost ~]# docker run -d -p 8080:8080 --name=tomcat01 0ce438e89a29
77b06f47d5038b07285f7ebfe346777ad5fd210a0ed6d76ccdccd42a98719507
/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint tomcat01 (4e18f6231a15b0f0e7c3b1647347154ed33494de4653a42c1b0c3f67afaf88e1): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.17.0.3:8080 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)).

但是 实际上并没有冲突的容器存在。

实际原因:

docker服务启动时定义的自定义链DOCKER由于某种原因被清掉
重启docker服务及可重新生成自定义链DOCKER

 

解决方法:

启动            systemctl start docker
守护进程重启      sudo systemctl daemon-reload
重启docker服务    systemctl restart docker
重启docker服务     service docker restart
关闭docker       service docker stop   
关闭docker       systemctl stop docker

————————————————

  •  attach进入docker容器就是日志,无法执行命令

解决办法:

[root@localhost ~]# docker exec -it d3685af453b7 /bin/bash
root@d3685af453b7:/usr/local/tomcat# 

 ————————————————

  • tomcat 启动后无法访问问题:
 [root@localhost ~]# docker run -d -p 8081:8081 d000265e3263  # 错误,只能是 8080
 [root@localhost ~]# docker run -d -p 8081:8080 d000265e3263  # 正确

 ————————————————

  • docker容器内提示Permission denied,这个权限问题

[root@bcaf0cbe1a1a dataVolumeContainer]# touch test02.txt
touch: cannot touch 'test02.txt': Permission denied

 解决办法:

1.在运行容器的时候,给容器加特权,及加上 --privileged=true 参数:

docker run -i -t -v /soft:/soft --privileged=true 686672a1d0cc /bin/bash

2.临时关闭selinux:

setenforce 0

原文链接:https://blog.csdn.net/weixin_35702498/article/details/113894607
————————————————

 

  • docker容器启动提示:Apr 23 13:22:32 k8snode01 dockerd-current[8771]: Error starting daemon: error initializing graphdriver: /var/lib/docker contains several valid graphdrivers: devicemapper, overlay2; Please cleanup or explicitly choose...er (-s <DRIVER>)

docker版本:1.13.1

解决办法:

到 /var/lib/docker 目录下查看,有devicemapper的目录和overlay2的目录。删除devicemapper

 ————————————————

  •  docker访问外部数据库
  • 场景:xxl-job-admin:2.2.0 的 docker 镜像 192.168.181.150 需要访问外部数据库 192.168.181.147
虚拟机 192.168.181.147:数据库

虚拟机 192.168.181.150:docker 

springboot 项目:xxl-job-admin:2.2.0

 

  • 解决办法:带上参数 --net=host
docker run -d --net=host -p 8080:8080 xxl-job-admin:2.2.0 -t

  ————————————————

 

posted @ 2021-01-06 18:57  xiluhua  阅读(246)  评论(0编辑  收藏  举报