docker在centos7系统镜像下无法启动服务的解决办法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker在centos7系统镜像下无法启动服务的解决办法相关的知识,希望对你有一定的参考价值。
一、成功安装服务后发现无法启动
报错为:Failed to get D-Bus connection: Operation not permitted
系统为centos7官方版镜像,源和依赖之类的都已更新,查了下是官方镜像的一个bug
docker run -d -v /sys/fs/cgroup:/sys/fs/cgroup:ro --name centos pro_env /usr/sbin/init
启动一个常驻的容器,centos为容器名称,pro_env为镜像名称,不知道镜像名称可以docker images命令查询
连接容器,centos为容器名称
docker exec -ti centos bash
二、网络无法互相连通
用下面的命令创建容器,然后连接容器
docker run -p 80:80 -p 8080:8080 -d -v /sys/fs/cgroup:/sys/fs/cgroup:ro --name centos14 pro_env /usr/sbin/init
docker exec -ti centos14 bash
结果网络之间联通的情况为
宿主机为windows,其他都是centos系统
在windows系统上添加路由即可,命令如下:
route -p add 172.17.0.0 mask 255.255.0.0 192.168.108.128 #192.168.108.128为虚拟机ip,172.17.0.0为docker容器网关
网络打通后,启动服务然后在windows机器的浏览器里输入172.17.0.2及相应端口即可访问,最保险的办法就是先互相ping通,然后启动一个apache服务然后检查一下服务是否可以联通
最新集成环境镜像备忘:
启动命令
docker run -p 80:80 -p 8080:8080 -p 3306:3306 -p 61616:61616 -p 5672:5672 -p 6379:6379 -d -v /sys/fs/cgroup:/sys/fs/cgroup:ro --name centos centos7_2 /usr/sbin/init docker exec -ti centos bash
mysql的root密码为aaBB123456!
jdk7下载地址:wget http://113.215.21.49/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz?AuthParam=1492138621_f2ed1c5c5c7b162bde76d391763371bb
有空编写dockerfile
导出本地容器为本地镜像的方法:sudo docker export 7691a814370e > ubuntu.tar
导入本地镜像压缩包的方法:cat centos.tar | sudo docker import - test/centos # test/centos是要创建的镜像名称
将本地容器保存为镜像的方法docker commit 35f1c2ae1f7e mynewimage #35f1c2ae1f7e 为容器id,mynewimage 为要保存的镜像名称
也可以导入网络镜像:docker import http://example.com/exampleimage.tgz example/imagerepo
以上是关于docker在centos7系统镜像下无法启动服务的解决办法的主要内容,如果未能解决你的问题,请参考以下文章
在 Docker 的 CentOS7 镜像 中安装 mysql