docker 使用 dockerfile 制作镜像

Java 及应用程序的镜像

centos java springboot run

新建 Dockerfile

[root@node1 ~]# ls
deviceHandler-0.0.1-SNAPSHOT.jar
dockerfile_handler
jdk-8u251-linux-x64.tar.gz

拷贝命令 docker cp test.jar containerId:/path

[root@node1 ~]# cat dockerfile_handler 
FROM centos:latest
MAINTAINER lyd
ADD jdk-8u251-linux-x64.tar.gz /usr/local/ #自动解压
ADD ["deviceHandler-0.0.1-SNAPSHOT.jar", "/usr/local/deviceHandler-0.0.1-SNAPSHOT.jar"]
ENV JAVA_HOME=/usr/local/jdk1.8.0_251
ENV CLASSPATH=.$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
##CMD ["java","-version"]
##RUN echo "JAVA_HOME=/usr/local/jdk1.8.0_251\nCALSSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar\nPATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
##RUN source /etc/profile
EXPOSE :8020
ENTRYPOINT ["java","-jar", "/usr/local/deviceHandler-0.0.1-SNAPSHOT.jar"]

docker build 构建镜像

[root@node1 ~]# docker run -d handler -p 8020:8020 --net=bridge /bin/bash

[root@node1 ~]# docker build -f dockerfile_handler -t handler .
Sending build context to Docker daemon  274.9MB
Step 1/8 : FROM centos:latest
latest: Pulling from library/centos
7a0437f04f83: Pull complete 
Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
Status: Downloaded newer image for centos:latest
 ---> 300e315adb2f
Step 2/8 : MAINTAINER lyd
 ---> Running in efd28406b3e6
Removing intermediate container efd28406b3e6
 ---> 73c57dec791d
Step 3/8 : ADD jdk-8u251-linux-x64.tar.gz /usr/local/
 ---> a069537a5f6d
Step 4/8 : ADD ["deviceHandler-0.0.1-SNAPSHOT.jar", "/usr/local/deviceHandler-0.0.1-SNAPSHOT.jar"]
 ---> 32f9cbe745f8
Step 5/8 : ENV JAVA_HOME=/usr/local/jdk1.8.0_251 CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin
 ---> Running in 64193fb98c1b
Removing intermediate container 64193fb98c1b
 ---> e0fc8841cda9
Step 6/8 : RUN echo "JAVA_HOME=/usr/local/jdk1.8.0_251\nCALSSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar\nPATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
 ---> Running in af396796b08a
Removing intermediate container af396796b08a
 ---> 6f1e4fd82a3c
Step 7/8 : EXPOSE :8020
 ---> Running in 8e949af71ebb
Removing intermediate container 8e949af71ebb
 ---> 535e4865a3b1
Step 8/8 : ENTRYPOINT ["java","-jar", "/usr/local/deviceHandler-0.0.1-SNAPSHOT.jar &"]
 ---> Running in fab52895e993
Removing intermediate container fab52895e993
 ---> cd3015443c86
Successfully built cd3015443c86
Successfully tagged handler:latest

查看新镜像

[root@node1 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
handler      latest    cd3015443c86   2 minutes ago   645MB
centos       latest    300e315adb2f   3 months ago    209MB

启动容器

docker run -d handler --link activemq
docker run -id --name helloworld -p 8851:8851 hello:latest

Redis Dockerfile 镜像

[root@node2 ~]# cat dockerfile_redis
FROM centos:latest
MAINTAINER lyd
RUN yum install -y net-tools gcc gcc-c++ make openssl openssl-devel
ADD redis-5.0.7.tar.gz /usr/local
RUN cd /usr/local/redis-5.0.7 && make && make PREFIX=/usr/local/redis install
RUN cp /usr/local/redis-5.0.7/redis.conf /usr/local/redis/bin/ && sed -i  '69s/127.0.0.1/0.0.0.0/' /usr/local/redis/bin/redis.conf && sed -i  '88s/protected-mode yes/protected-mode no/' /usr/local/redis/bin/redis.conf

EXPOSE 6379
ENTRYPOINT /usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf 

#end
#创建 docker build -f dockerfile_redis -t redis:5.0.7 .
#启动 docker run -id --name redis -p 6379:6379 redis:5.0.7
#测试 docker exec -it e636b1b32926 /usr/local/redis/bin/redis-cli

ActiveMQ镜像

[root@node2 ~]# cat dockerfile_connect 
FROM centos:latest
MAINTAINER lyd
ADD jdk-8u251-linux-x64.tar.gz /usr/local/
ADD ["mqTest-1.0-SNAPSHOT.jar", "/usr/local/mqTest-1.0-SNAPSHOT.jar"]

ENV JAVA_HOME=/usr/local/jdk1.8.0_251
ENV CLASSPATH=.$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

#RUN echo "JAVA_HOME=/usr/local/jdk1.8.0_251\nCALSSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar\nPATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
#RUN source /etc/profile

EXPOSE 5856
ENTRYPOINT ["java","-jar", "/usr/local/mqTest-1.0-SNAPSHOT.jar"]

# test
# docker build -f dockerfile_connect -t connect:latest .
# docker run -d -p 5856:5856 --name connect --link activemq connect:latest

参考资料

【Docker】通过Dockerfile构建Redis镜像
https://blog.csdn.net/l1028386804/article/details/108999477

使用docker-compose 启动容器
https://blog.csdn.net/oopxiajun2011/article/details/106237815/

修改docker服务建立bridge时的MTU配置

Docker Network
https://blog.csdn.net/qq_42000631/article/details/126627139

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值