docker 根据dockerfile创建镜像
原文传送:传送门
DockerFile
dockerfile 时用来构建docker 镜像的文件,命令参数脚本
构建步骤:
- 编写dockerfile文件
- docker build构建成镜像
- docker run
- docker push 发布镜像
- docker hub
- 阿里云仓库
1 2 3 4 5 6 7 8 9 10 11 12 | from #基础镜像 maintainer #作者 run #构建时运行的命令 add #需要的文件,添加到镜像,想层级关系一样,在基础上叠加层 workdir #如/bin/bash,进入到工作目录 volume #挂载卷 export #暴露端口 cmd #指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代 entrypoint #指定这个容器启动时要运行的命令,可以追加命令 onbuild #构建一个被继承的dockerfile,这个指令就会运行,作为一个触发指令 copy #类似add,将文件拷贝到镜像中 env #构建时设置环境变量 |
-
编写dockerfile
#编写dockerfile 文件,在创建镜像时去下载vim和net-tools [root@localhost dockerfile]# cat mydockerfile FROM centos MAINTAINER haoyun<740933114@qq.com> ENV MYPATH /usr/local WORKDIR $MYPATH #设置工作目录 RUN yum -y install vim RUN yum -y install net-tools #安装vim和net-tools EXPOSE 80 #开放端口 CMD echo $MYPATH #输出工作目录 CMD echo "---end---" CMD /bin/bash #进入/bin/bash目录
#构建镜像 [root@localhost dockerfile]# docker build -f mydockerfile -t mycentos:1.0 . #构建image ,不要漏掉结尾有个点 Successfully built b814a074fd27 Successfully tagged mycentos:1.0
[root@localhost dockerfile]# docker run -it mycentos:1.0 /bin/bash [root@72e699904ab5 local]# pwd /usr/local [root@72e699904ab5 local]# #启动执行时直接到了/usr/local目录 #这是通过dockerfile设置的,ENV MYPATH #vim和ifconfig也可以使用了
实践Tomcat image
-
准备tomcat压缩包
-
编写dockerfile文件,官方命名Dockerfile,build会自动寻找这个文件,不需要-f指定
-
ADD命令会自动解压
FROM centos MAINTAINER haoyun<740933114@qq.com> ADD jdk-8u271-linux-x64.tar /usr/local ADD apache-tomcat-7.0.107.tar /usr/local RUN yum -y install vim ENV MYPATH /usr/local WORKDIR $MYPATH ENV JAVA_HOME /usr/local/jdk1.8.0.0_11 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-7.0.107 ENV CATALINA_BASH /usr/local/apache-tomcat-7.0.107 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin EXPOSE 8080 CMD /usr/local/apache-tomcat-7.0.107/bin/startup.sh && tail -F /usr/local/apache-tomcat-7.0.107/logs/catalina.out
docker build -t haoyuncentos:1.0 . Successfully built 449e85c62b91 Successfully tagged haoyuncentos:1.0
[root@localhost tomcat]# docker exec -it d7c23048c6c7 /bin/bash [root@d7c23048c6c7 local]# ls apache-tomcat-7.0.107 bin etc games include jdk1.8.0_271 lib lib64 libexec sbin share src [root@d7c23048c6c7 local]#
FROM java:8 ADD ./target/demo-v1.jar /app/demo-v1.jar EXPOSE 1234 ENTRYPOINT ["java","-jar","/app/demo-v1.jar","&"]
FROM centos MAINTAINER haoyun<740933114@qq.com> -
标签:
docker
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性