1.创建容器

我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的需求。尽管已经从繁琐的部署工作中解放出来,但是实际开发时,我们可能希望镜像包含整个项目的完整环境,在其他机器上拉取打包完整的镜像,直接运行即可。
Docker支持自己构建镜像,还支持将自己构建的镜像上传至公共仓库,镜像构建可以通过以下两种方式来实现:
●docker commit :从容器创建一个新的镜像;
●docker build :配合Dockerfile文件创建镜像。
下面我们先通过docker commit 来实现镜像的构建。目标:接下来我们通过基础镜像centos:7,在该镜像中安装jidk和tomcat以后将其制作为一个新的镜像mycentos:7 。

  1. #拉取镜像
  2. docker pull centos:7
  3. # 搜索镜像
  4. docker search centos
  5. #创建容器
  6. docker run -di --name centos7 centos:7

拷贝资源

  1. docker cp /root/apache-tomcat-10.0.10.tar.gz mycentos:/root
  2. docker cp jdk-11.0.9_linux-x64_bin.tar.gz mycentos:/root

进入容器创建文件夹

  1. docker exec -it centos7 /bin/bash
  2. mkdir -p /usr/local/tomcat
  3. mkdir -p /usr/local/java

安装资源

  1. #在容器内部进行解压文件到指定目录
  2. tar -zxvf jdk-11.0.9_linux-x64_bin.tar.gz -C /usr/local/java
  3. # 直接编辑文件
  4. vi /etc/profile
  5. # 创建环境变量
  6. export JAVA_HOME=/usr/local/java/jdk-11.0.9
  7. export PATH=$PATH:$JAVA_HOME/bin
  8. # 激活环境变量
  9. source /etc/profile
  10. # 切换目录,激活tomcat
  11. cd /usr/local/tomcat/apache-tomcat-10.0.10/
  12. # 操作tomcat
  13. bin/startup.sh
  14. curl http://localhost:8080
  15. bin/shutdown.sh
  16. # 删除多余资源
  17. cd ~
  18. rm apache-tomcat-10.0.10.tar.gz jdk-11.0.9_linux-x64_bin.tar.gz -rf

构建镜像

  1. docker commit -a="CaesarTylor" -m="jdk11 and tomcat10" centos7 mycentos:7

使用构建的镜像创建容器

  1. #查看正在运行的镜像
  2. docker ps
  3. docker run -di --name mycentos7 -p 443:8080 mycentos:7
  4. # 进入容器内部
  5. docker exec -it mycentos7 bash
  6. cd /usr/local/tomcat/apache-tomcat-10.0.10/
  7. source /etc/profile
  8. java -version
  9. bin/startup.sh
  10. curl http://localhost:8080

实现逻辑

运行效果