1.创建容器
我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的需求。尽管已经从繁琐的部署工作中解放出来,但是实际开发时,我们可能希望镜像包含整个项目的完整环境,在其他机器上拉取打包完整的镜像,直接运行即可。
Docker支持自己构建镜像,还支持将自己构建的镜像上传至公共仓库,镜像构建可以通过以下两种方式来实现:
●docker commit :从容器创建一个新的镜像;
●docker build :配合Dockerfile文件创建镜像。
下面我们先通过docker commit 来实现镜像的构建。目标:接下来我们通过基础镜像centos:7,在该镜像中安装jidk和tomcat以后将其制作为一个新的镜像mycentos:7 。
#拉取镜像
docker pull centos:7
# 搜索镜像
docker search centos
#创建容器
docker run -di --name centos7 centos:7
拷贝资源
docker cp /root/apache-tomcat-10.0.10.tar.gz mycentos:/root
docker cp jdk-11.0.9_linux-x64_bin.tar.gz mycentos:/root
进入容器创建文件夹
docker exec -it centos7 /bin/bash
mkdir -p /usr/local/tomcat
mkdir -p /usr/local/java
安装资源
#在容器内部进行解压文件到指定目录
tar -zxvf jdk-11.0.9_linux-x64_bin.tar.gz -C /usr/local/java
# 直接编辑文件
vi /etc/profile
# 创建环境变量
export JAVA_HOME=/usr/local/java/jdk-11.0.9
export PATH=$PATH:$JAVA_HOME/bin
# 激活环境变量
source /etc/profile
# 切换目录,激活tomcat
cd /usr/local/tomcat/apache-tomcat-10.0.10/
# 操作tomcat
bin/startup.sh
curl http://localhost:8080
bin/shutdown.sh
# 删除多余资源
cd ~
rm apache-tomcat-10.0.10.tar.gz jdk-11.0.9_linux-x64_bin.tar.gz -rf
构建镜像
docker commit -a="CaesarTylor" -m="jdk11 and tomcat10" centos7 mycentos:7
使用构建的镜像创建容器
#查看正在运行的镜像
docker ps
docker run -di --name mycentos7 -p 443:8080 mycentos:7
# 进入容器内部
docker exec -it mycentos7 bash
cd /usr/local/tomcat/apache-tomcat-10.0.10/
source /etc/profile
java -version
bin/startup.sh
curl http://localhost:8080