基于centos创建一个简单docker镜像,包含javaweb应用

基于上一篇文章使用dockerfile构建自己的镜像

现在尝试创建一个包含javaweb应用的docker镜像, 从centos>>>java8>>>java应用, 从无到有过程比较繁琐, 为了熟悉使用多一些命令而已

C:\Users\xuyin\Desktop\Dockerfile>docker images
REPOSITORY                                    TAG                 IMAGE ID            CREATED             SIZE
centos                                        latest              300e315adb2f        3 weeks ago         209MB

创建基于centos,通过dockerfile创建镜像,把jdk传进去

Dockerfile文件内容如下

FROM centos
COPY jdk-8u162-linux-x64.tar.gz /home/

通过docker build 把jdk8传进去, 新建镜像,启动容器,配置jdk

C:\Users\xuyin\Desktop\Dockerfile>docker build -t java8 .
Sending build context to Docker daemon  206.8MB
Step 1/2 : FROM centos
 ---> 300e315adb2f
Step 2/2 : COPY jdk-8u162-linux-x64.tar.gz /home/
 ---> a5243141aacf
Successfully built a5243141aacf
Successfully tagged java8:latest
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

C:\Users\xuyin\Desktop\Dockerfile>docker images
REPOSITORY                                    TAG                 IMAGE ID            CREATED             SIZE
java8                                         latest              a5243141aacf        40 seconds ago      399MB
centos                                        latest              300e315adb2f        3 weeks ago         209MB

C:\Users\xuyin\Desktop\Dockerfile>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES

C:\Users\xuyin\Desktop\Dockerfile>docker run -itd --name java8container java8
581a933f46da5a7b4fab5c36558673ec25608e709d14abf994940b64f80ebce6

C:\Users\xuyin\Desktop\Dockerfile>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
581a933f46da        java8               "/bin/bash"              3 seconds ago       Up 2 seconds                                 java8container

C:\Users\xuyin\Desktop\Dockerfile>docker exec -it java8container /bin/bash
[root@581a933f46da /]# cd /home/
[root@581a933f46da home]# ls
jdk-8u162-linux-x64.tar.gz
[root@581a933f46da home]# tar -zxvf jdk-8u162-linux-x64.tar.gz
...
[root@581a933f46da home]# ls
jdk-8u162-linux-x64.tar.gz  jdk1.8.0_162
[root@581a933f46da home]# vi /etc/profile
--------------------------------------------------
//修改文件内容,加入
export JAVA_HOME=/home/jdk1.8.0_162
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
--------------------------------------------------


[root@581a933f46da home]# vi ~/.bashrc
--------------------------------------------------
在 ~/.bashrc 配置文件添加 source /etc/profile ,重启后会刷新配置文件
--------------------------------------------------

[root@581a933f46da /]# java
bash: java: command not found
[root@581a933f46da /]# source /etc/profile
[root@581a933f46da /]# java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

[root@581a933f46da /]# rm /home/jdk-8u162-linux-x64.tar.gz
rm: remove regular file '/home/jdk-8u162-linux-x64.tar.gz'? y

配置完之后通过docker commit把容器生成镜像

C:\Users\xuyin>docker commit java8container java8image
sha256:68474292809d4f28567806f8abf7d993707e253861628166c1c31901d1d359a5

C:\Users\xuyin>docker images
REPOSITORY                                    TAG                 IMAGE ID            CREATED             SIZE
java8image                                    latest              68474292809d        3 seconds ago       784MB
java8                                         latest              a5243141aacf        About an hour ago   399MB
centos                                        latest              300e315adb2f        3 weeks ago         209MB

再通过docker file把一个简单的javaweb项目,打包进新镜像

Dockerfile文件内容如下

FROM java8image
COPY demo-0.0.1-SNAPSHOT.jar /home/
ENTRYPOINT /bin/bash -c 'source /etc/profile; java -jar /home/demo-0.0.1-SNAPSHOT.jar'

执行docker build生成带有java应用的镜像

C:\Users\xuyin\Desktop\Dockerfile>docker build -t javawebdemo .
Sending build context to Docker daemon  206.8MB
Step 1/3 : FROM java8image
 ---> 68474292809d
Step 2/3 : COPY demo-0.0.1-SNAPSHOT.jar /home/
 ---> 85e88f4a13fe
Step 3/3 : ENTRYPOINT /bin/bash -c 'source /etc/profile; java -jar /home/demo-0.0.1-SNAPSHOT.jar'
 ---> Running in c844a20ea151
Removing intermediate container c844a20ea151
 ---> f854635bcfe8
Successfully built f854635bcfe8
Successfully tagged javawebdemo:latest
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

C:\Users\xuyin\Desktop\Dockerfile>docker images
REPOSITORY                                    TAG                 IMAGE ID            CREATED             SIZE
javawebdemo                                   latest              f854635bcfe8        5 seconds ago       801MB
java8image                                    latest              68474292809d        2 hours ago         784MB
java8                                         latest              a5243141aacf        3 hours ago         399MB
centos                                        latest              300e315adb2f        3 weeks ago         209MB

运行镜像, 把javaweb应用端口映射出来

C:\Users\xuyin\Desktop\Dockerfile>docker run -itd -p 8080:8080 javawebdemo
b51a228a4a71acdfda0cbf6fd1791ca18e4266e044789eca77842aefa35a8bb6

C:\Users\xuyin\Desktop\Dockerfile>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
b51a228a4a71        javawebdemo         "/bin/sh -c '/bin/ba…"   8 seconds ago       Up 7 seconds        0.0.0.0:8080->8080/tcp   vigilant_meninsky

最后可以在浏览器访问java应用了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值