当你在docker 遇到如下问题时,我建议你回头是岸,你要的是一个virtual machine,不是Container,请看完docker 基础文档在着手动手搭建环境。
BTW,有人说这是cetos 7.1BUG,你换成7.2也没卵用(真心鄙视这个骗子)。
[root@46658f816418 /]# systemctl start httpd
Failed to get D-Bus connection: Operation not permitted
是的,我也是那个不看文档瞎倒腾的人,最后还得老老实实看文档…
窝在酒店看了一上午文档,突发奇想用docker 构建一个JAVA 运行环境:将war包自动部署到两个container 中:
以下是build 目录:
[root@docker tomcat7]# pwd
/root/dockerfile/tomcat7
[root@docker tomcat7]# ls -a
. .. Dockerfile apache-tomcat-7.0.70.tar.gz sample.war server.xml
文件说明:
Dockerfile-构建image
apache-tomcat-7.0.70.tar.gz-tomcat 安装文件
sample.war-需要部署的war 包
server.xml-修改了配置的server.xml,已将sample添加进去:
<Context path="/usr/share/apache-tomcat-7.0.70/webapps/" docBase="sample" debug="0" privileged="true"/>
当然重点是Dockerfile:
[root@docker tomcat7]# more Dockerfile
#leon yan copy right version 0.1
FROM registry.access.redhat.com/rhel7.2
MAINTAINER leon yan(yl_1314@163.com)
ENV REFRESHED_AT 2016-07-29
RUN yum install -y java-1.7.0-openjdk
#set tomcat RUN ENV
ENV CATALINA_BASE: /usr/share/apache-tomcat-7.0.70
ENV CATALINA_HOME: /usr/share/apache-tomcat-7.0.70
ENV CATALINA_TMPDIR: /usr/share/apache-tomcat-7.0.70/temp
ENV JRE_HOME: /usr/lib/jvm/jre-1.7.0
ENV CLASSPATH: /usr/share/apache-tomcat-7.0.70/bin/bootstrap.jar:/usr/share/apache-tomcat-7.0.70/bin/tomcat-juli.jar
#tomcat install
ADD apache-tomcat-7.0.70.tar.gz /usr/share/
WORKDIR /usr/share/
RUN mv ./apache-tomcat-7.0.70/conf/server.xml ./apache-tomcat-7.0.70/conf/server.xml.bak
#add war file
VOLUME [“/opt/webapps/"]
ADD sample.war /usr/share/apache-tomcat-7.0.70/webapps/sample.war
ADD server.xml /usr/share/apache-tomcat-7.0.70/conf/server.xml
EXPOSE 8080
ENTRYPOINT ["/usr/share/apache-tomcat-7.0.70/bin/catalina.sh", "run"]
构建镜像:
[root@docker tomcat7]# docker build -t leonyan/sample_run
运行2个容器:
[root@docker tomcat7]# docker run -d -p 8080 --name sample_run leonyan/sample_run
[root@docker tomcat7]# docker run -d -p 8080 --name sample_run2 leonyan/sample_run
查看各自分配的端口:
[root@docker tomcat7]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7866a166ae9 leonyan/sample_run "/usr/share/apache-to" 37 minutes ago Up 37 minutes 0.0.0.0:32776->8080/tcp sample_run2
cab75dd80902 leonyan/sample_run "/usr/share/apache-to" 56 minutes ago Up 40 minutes 0.0.0.0:32775->8080/tcp sample_run
[root@docker tomcat7]#
在宿主机上访问:
最后再啰嗦一句,如果你想ssh 到容器,systemctl start *,回头是岸…