企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ## 创建Docker镜像 >[info]构建Docker镜像的一般过程是首先创建一个容器, 并在容器里修改镜像,配置相关环境等,最后将修改提交为一个新镜像。 ### 下载制作镜像的系统 ``` root@ubuntu:/home/guanfuchang# docker pull ubuntu ``` 下载完成后,本地多了一个ubuntu系统镜像如下: ``` root@ubuntu:/home/guanfuchang# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest ea4c82dcd15a 4 weeks ago 85.8MB ... ``` ### 启动容器并修改镜像 #### 创建启动容器ubuntu:latest,并将本地目录挂载到容器中 ``` docker run -i -t -v /data/software/:/data/software ubuntu:latest /bin/bash ``` 参数说明: -i:表示以“交互模式”运行容器 -t:表示容器启动后会进入其命令行 -v:表示需要将本地哪个目录挂载到容器中 #### 在容器中安装JDK,Tomcat 1. 将安装介质上传到宿主主机目录/data/software 中,然后进入容器 安装介质JDK链接:https://pan.baidu.com/s/1nXiJ18HUBbnPC3IdMNi46g 密码:2phd 安装介质Tomcat链接:https://pan.baidu.com/s/1GVJria7QjzvwSCZHBFdloQ 密码:q3c0 启动容器,然后进入容器(进入容器前,需先将容器运行起来) ``` root@ubuntu:/data/software# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ddeb33467e9e ubuntu:latest "/bin/bash" 2 hours ago Exited (127) 24 minutes ago xenodochial_keller root@ubuntu:/data/software# root@ubuntu:/data/software# docker start ddeb33467e9e ddeb33467e9e ``` ``` root@ubuntu:/data/software# docker attach ddeb33467e9e root@ddeb33467e9e:/# ``` 查看/data/software中是否已经同步了安装介质。 ``` root@ddeb33467e9e:/# cd /data/software/ root@ddeb33467e9e:/data/software# ls apache-tomcat-9.0.13.tar.gz jdk-8u191-linux-x64.tar.gz ``` 2. 将JDK和Tomcat 安装到/data 目录下 ``` root@ddeb33467e9e:/data/software# tar -zxvf jdk-8u191-linux-x64.tar.gz -C /data/ root@ddeb33467e9e:/data/software# tar -zxvf apache-tomcat-9.0.13.tar.gz -C /data/ root@ddeb33467e9e:/data/software# root@ddeb33467e9e:/data/software# cd .. root@ddeb33467e9e:/data# mv jdk1.8.0_191 jdk root@ddeb33467e9e:/data# mv apache-tomcat-9.0.13 tomcat root@ddeb33467e9e:/data# ls jdk software tomcat ``` 3. 修改环境变量,将下面的配置添加到 /etc/profile 的最后面 ``` #set java environment export JAVA_HOME=/data/jdk export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:{JRE_HOME}/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH export CATALINA_HOME=/data/tomcat export CATALINA_BASE=/data/tomcat ``` >[warning]容器内如果vim命令无法使用,需先安装,安装如下: `root@ddeb33467e9e:/data# apt update ` `root@ddeb33467e9e:/data# apt install vim` 修改后,使配置立即生效 ``` root@ddeb33467e9e:/data# source /etc/profile ``` 检查java配置是否生效 ``` root@ddeb33467e9e:/# java -version java version "1.8.0_191" Java(TM) SE Runtime Environment (build 1.8.0_191-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode) ``` #### 编写启动脚本 ``` root@ddeb33467e9e:/# vim /data/start.sh ``` 脚本如下: ``` #!/bin/bash # Export environment variable source /etc/profile # Start tomcat bash /data/tomcat/bin/catalina.sh run ``` 授权启动脚本 ``` root@ddeb33467e9e:/# chmod u+x /data/start.sh ``` ### 制作镜像 查看容器,获取容器ID ``` root@ubuntu:/data/software# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ddeb33467e9e ubuntu:latest "/bin/bash" About an hour ago Exited (127) 6 seconds ago xenodochial_keller ``` 制作镜像 ``` root@ubuntu:/data/software# docker commit ddeb33467e9e mt/mytomcatdemo:1.0 ``` 查看镜像是否已经安装成功 ``` root@ubuntu:/data/software# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mt/mytomcatdemo 1.0 a65637693626 41 seconds ago 580MB ``` 创建并运行容器,指定宿主端口18080 ``` root@ubuntu:/data/software# docker run -d -p 18080:8080 --name tomcatdemo mt/mytomcatdemo:1.0 /data/start.sh 96f03a0e009e706b213583a1408153f8c26314a1d6776204f9b1a6798ed313a7 ``` 查看容器是否已经在运行 ``` root@ubuntu:/data/software# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 96f03a0e009e mt/mytomcatdemo:1.0 "/data/start.sh" 10 seconds ago Up 10 seconds 0.0.0.0:18080->8080/tcp tomcatdemo ``` 访问宿主ip:端口,如:http://192.168.147.128:18080/ 访问如下即说明镜像制作成功,成功运行。 ![](https://box.kancloud.cn/e17e465e2c2a4d9cdd3aae89c83ff0ea_991x704.png) --- :-: ![](https://box.kancloud.cn/331f659e8e6cddb0d9f182e00e32803f_258x258.jpg) <span style="color: #993366;"><em>***<span style="text-decoration: underline;"><span style="text-decoration: underline;">微信扫一扫,关注&ldquo;python测试开发圈&rdquo;,了解更多测试教程!!</span></span>***</em></span>