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系统镜像下无法启动服务的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Linux修改docker镜像和容器的默认存储位置

二、docker-安装nexus

docker安装和各种操作

在 Docker 的 CentOS7 镜像 中安装 mysql

在 Docker 的 CentOS7 镜像 中安装 mysql

docker搭建gitlab服务器(Centos7)