1. 创建docker 目录
mkdir /z/docker
cd /z/docker
2. 下载并解压jdk-8u144-linux-x64.tar.gz, 修改目录名为java
3. 下载并解压apache-tomcat-7.0.52.tar.gz,修改目录名为tomcat7
4. 编写 docker 构建 文件
vi Dockerfile
复制以下内容到 Dockedrfile 中
#使用的基础镜像
FROM centos
#创建目录
RUN mkdir -p /z/home
#把当前目录下的jdk文件夹添加到镜像
ADD tomcat /z/home/tomcat7.0
ADD java /z/home/java
ENV JAVA_HOME /z/home/java/
ENV CATALINA_HOME /z/home/tomcat7.0
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
#暴露8080端口
EXPOSE 8080
#启动时运行tomcat
CMD ["/z/home/tomcat7.0/bin/catalina.sh","run"]
5. 构建 images镜像
docker build -t repos_local/tomcat .
6. 根据镜像启动一个 container
docker run -d -p 8085:8080 --name tomcat repos_local/tomcat
docker run -d 后台执行 -p 主机暴露端口:容易端口 --name container名称(唯一) 镜像名称
7. 查看是否启动
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
86fcdd2a61f8 repos_local/tomcat "/z/home/tomcat7.0..." About an hour ago Up About an hour 0.0.0.0:8085->8080/tcp test_tomcat
8. 可能会出现防火墙 问题 , 这里我使用的 是iptables
以下为我防火墙配置 , 可粘贴过去
修改防火墙配置
vi /etc/sysconfig/iptables
*nat
:PREROUTING ACCEPT [27:11935]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [598:57368]
:POSTROUTING ACCEPT [591:57092]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
COMMIT
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [139291:461018923]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [127386:5251162]
:DOCKER - [0:0]
-A INPUT -p tcp -m tcp --dport 8085 -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibite
-A OUTPUT -p tcp -m tcp --sport 8085 -j ACCEPT
COMMIT
重启防火墙
service iptables restart
9.重启防火墙之后 重新启动docker start test_tomcat(前面指定的name)
10. 打开浏览器 http://192.168.1.100:8085 (前面是虚拟机ip)