用Dockerfile创建docker,注意下,建议在空文件夹下创建
本篇我们将完成:
1、用Dockerfile创建docker
2、端口映射
3、卷挂载,即docker目录挂载到宿主机
1、用Dockerfile创建docker
在/opt/centos/目录下,创建Dockerfile
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
FROM 127.0.0.1:5000
/centos
:v2
MAINTAINER jack.zhang
ENV REFRESHED_AT 2017-8-28
ENV JAVA_HOME
/opt/jdk1
.8.0_131
ENV JRE_HOME
/opt/jdk1
.8.0_131
/jre
ENV CLASSPATH .:$JAVA_HOME
/lib
:$JRE_HOME
/lib
:$CLASSPATH
ENV PATH $JAVA_HOME
/bin
:$JRE_HOME
/bin
:$PATH
RUN
mkdir
/data
RUN yum
install
-y wget
RUN wget http:
//192
.168.10.144:9098
/jdk-8u131-linux-x64
.
tar
.gz && \
tar
-xvf jdk-8u131-linux-x64.
tar
.gz -C
/opt/
RUN wget http:
//192
.168.10.144:9098
/tomcat
.
tar
.gz && \
tar
-xvf tomcat.
tar
.gz -C
/data/
&& \
mv
/data/tomcat
/data/tomcat8
RUN
chmod
+x
/data/tomcat8/bin/
*sh
VOLUME [
"/data/tomcat8/webapps/"
]
EXPOSE 8090
EXPOSE 8009
ENTRYPOINT [
"/data/tomcat8/bin/catalina.sh"
,
"run"
]
|
文件编辑完成后,我们来生成docker
|
1
2
3
4
5
6
7
8
9
|
注意命令后有个点,不要忘记,当前文件夹下面一定有Dockerfile
会打印一堆日志,这不影响,如果有异常可以找出对应问题,
创建后,我们看下是不是已经成功了
REPOSITORY TAG IMAGE ID CREATED SIZE
test
/test_app
latest 29175ec8a720 17 hours ago 836MB
|
2、端口映射
因为上面的端口已经暴露出来,只要tomcat启动了,端口就是通的,所以我们这里要做的就是启动docker并把端映射出来,这里的8090是docker提供服务的端口
|
1
2
3
4
5
6
7
|
启动docker并映射端口 注意,-p 就是端口映射
看下进程是否启动成功
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
923bc1dda78f
test
/test_app
"/data/tomcat8/bin..."
29 minutes ago Up 29 minutes 8009
/tcp
, 0.0.0.0:8090->8090
/tcp
tomcat
|
用宿主机访问IP:端口,访问是不是可以访问到了?
需要说明的是,端口映射其它是基于iptables的,所以如果docker启动没问题,进程也存在,确认宿主机的iptables 是否启动
centos iptables
3、卷挂载,即docker目录挂载到宿主机
其它挂载目录到宿主机,没什么特别的,有些文档介绍的好像有多么深奥,其实没啥
只是启动命令加下参数罢了,
先关闭运行中的docker
好了,挂载目录启动
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
-
v
命令, 注意 前面的是宿主机的目录,后面提docker目录
即把宿主机的
/usr/share/nginx/html
挂载到docker的
/data/tomcat8/webapps/ROOT/
下
查看下进程
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
923bc1dda78f
test
/test_app
"/data/tomcat8/bin..."
29 minutes ago Up 29 minutes 8009
/tcp
, 0.0.0.0:8090->8090
/tcp
tomcat
我们进入到docker shell 看下是不是成功挂载
[root@923bc1dda78f /]
[root@923bc1dda78f ROOT]
404.html 50x.html apache-tomcat-8.5.15-src.
tar
.gz index.html jdk-8u131-linux-x64.
tar
.gz nginx-logo.png poweredby.png
可以看到已经功能挂载
|
直接访问宿主机:端口,是不是首页不一样的~~
这样是不是很方便了,我们直接维护宿主机的目录就相当于维护docker目录。
本文转自 jackjiaxiong 51CTO博客,原文链接:http://blog.51cto.com/xiangcun168/1958270