Docker 概述:
??在前面的例子中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低。所以就需要一种文件或脚本,我们把想执行的操作以命令的方式写入其中,然后让 docker 读取并分析、执行,那么重复构建、更新将变得很方便,所以Dockerfile 就此诞生了
常用参数:
- FROM 命令。用法, FROM <image>:<tag>。 FROM 命令告诉 docker 我们构建的镜像是以哪个(发行版)镜像为基础的
- RUN 命令。用法 RUN 。 RUN 后面接要执行的命令,比如,我们想在镜像中安装 vim,只需在
- Dockfile 中写入 RUN yum install -y vim
- ENV 命令。用法,ENV 。 ENV 命令主要用于设置容器运行时的环境变量
- ADD 命令。用法, ADD 。 ADD 主要用于将宿主机中的文件添加到镜像中
基于 dockerfile 制作 tomcat 镜像
- 首先建一个目录构建我们的环境。
12 |
[[email protected] ~]# mkdir tomcat_centos[[email protected] ~]# cd tomcat_centos |
- 上传 tomcat 和 jdk 到该目录下。
12 |
[[email protected] tomcat_centos]# lsapache-tomcat-7.0.54.tar.gz jdk-7u65-linux-x64.tar.gz |
- 编辑 Dockerfile
123456789101112 |
[[email protected] tomcat_centos]# vim DockerfileFROM centos:1MAINTAINER from bistros <[email protected]>#copy jdk and tomcat into imageADD ./apache-tomcat-7.0.54.tar.gz /rootADD ./jdk-7u65-linux-x64.tar.gz /root#set environment variableENV JAVA_HOME /root/jdk1.7.0_65ENV PATH $JAVA_HOME/bin:$PATH#define entry point which will be run first when the container starts upENTRYPOINT /root/apache-tomcat-7.0.54/bin/startup.sh && tail -F /root/apache-tomcat-7.0.54/logs/catalina.out |
- 构建镜像
12345678910111213141516171819202122232425262728 |
[[email protected] tomcat_centos]# docker build -t bistros/tomcat:centos .Sending build context to Docker daemon 151.3 MBStep 1 : FROM centos:1---> 4a7667a30862Step 2 : MAINTAINER from b 大专栏 基于Dockerfile制作tomcat镜像istros <[email protected]>---> Running in 68bf1a959d26---> fcf74efba621Removing intermediate container 68bf1a959d26Step 3 : ADD ./apache-tomcat-7.0.54.tar.gz /root---> 66cddab1de86Removing intermediate container f0b727f5be51Step 4 : ADD ./jdk-7u65-linux-x64.tar.gz /root---> e5bb29fe10f6Removing intermediate container b26f642c67acStep 5 : ENV JAVA_HOME /root/jdk1.7.0_65---> Running in dfd83d97c8ed---> e434fbfdf162Removing intermediate container dfd83d97c8edStep 6 : ENV PATH $JAVA_HOME/bin:$PATH---> Running in 2233e413bb0d---> 6a2c544ad3c2Removing intermediate container 2233e413bb0dStep 7 : ENTRYPOINT /root/apache-tomcat-7.0.54/bin/startup.sh && tail -F /root/apache-tomcat-7.0.54/logs/catalina.out---> Running in 8d58b19e8ad7---> c0c55ad98c79Removing intermediate container 8d58b19e8ad7Successfully built c0c55ad98c79 |
- -t 选择指定生成镜像的用户名,仓库名和 tag
- –rm=true 指定在生成镜像过程中删除中间产生的临时容器。
查看新产生的镜像
123 |
[[email protected] tomcat_centos]# docker images bistros/tomcat:centosREPOSITORY TAG IMAGE ID CREATED SIZEbistros/tomcat centos c0c55ad98c79 About a minute ago 502.7 MB |
运行镜像
- 手动映射主机端口启动
12345678 |
[[email protected] tomcat_centos]# docker run -d -p 8090:8080 bistros/tomcat:centos65a0f0910f174132e009ca686b283c0dc58df0dd3000c144cd4c175f2078de37[[email protected] tomcat_centos]# docker ps -aCONTAINER ID IMAGE COMMANDCREATED STATUS PORTSNAMES5 / 565a0f0910f17 bistros/tomcat:centos "/bin/sh -c '/root/ap" 50 seconds agoUp 48 seconds 0.0.0.0:8090->8080/tcp pensive_kare |
- -p 指定主机 80 端口与容器 8080 端口进行绑定
- -d 指定容器运行后与当前 tty 分离,后台运行
- 65a0 是镜像的 ID 前 4 位。
通过 http://宿主机 IP:8090,即可看见我们熟悉的 tomcat 首页了。
- 自动映射主机端口的启动
123456789 |
[[email protected] tomcat_centos]# docker run -d -p 8080 --name tomcatbistros/tomcat:centos2f20477608f8d335a3424acd6f54ad5900db86bdbf48af2ea2777159a7646566[[email protected] tomcat_centos]# docker ps -aCONTAINER ID IMAGE COMMANDCREATED STATUS PORTSNAMES2f20477608f8 bistros/tomcat:centos "/bin/sh -c '/root/ap" 8 seconds agoUp 6 seconds 0.0.0.0:32768->8080/tcp tomcat |
这样就要通过 http://宿主机 IP:32768 访问了。
原文地址:https://www.cnblogs.com/lijianming180/p/12366273.html
时间: 2024-10-01 20:10:08