一、安装 docker 软件
1、可能遇到container.io版本异常
执行命令
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
参考 https://blog.csdn.net/chenwen202/article/details/107961630
2、安装命令
# 安装依赖
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# 增加源地址
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker
$ sudo yum install docker-ce docker-ce-cli containerd.io
二、制作镜像
准备jdk,tomcat ,redis文件
#使用的基础镜像
FROM centos
#不指定版本tag,则默认pull最新的
#创建者信息
MAINTAINER <changle> <happy_1127@126.com>
#安装wget
#RUN yum install -y wget
#复制本地jdk tomcat
COPY jdk-8u201-linux-x64.tar.gz /var/tmp/jdk-8u201-linux-x64.tar.gz
COPY apache-tomcat-7.0.105.tar.gz /var/tmp/apache-tomcat-7.0.105.tar.gz
COPY redis5 /usr/java/redis5
#安装JDK
RUN mkdir -p /usr/java/jdk \
&& tar -zxf /var/tmp/jdk-8u201-linux-x64.tar.gz -C /usr/java/jdk \
&& rm -rf /var/tmp/jdk-8u201-linux-x64.tar.gz \
#安装Tomcat
&& mkdir -p /usr/java/tomcat \
&& tar -xzf /var/tmp/apache-tomcat-7.0.105.tar.gz -C /usr/java/tomcat \
&& rm -rf /var/tmp/apache-tomcat-7.0.105.tar.gz
#配置JDK环境变量
ENV JAVA_HOME /usr/java/jdk/jdk1.8.0_201
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib
ENV PATH $PATH:$JAVA_HOME/bin
#配置Tomcat环境变量
ENV CATALINA_HOME /usr/java/tomcat/apache-tomcat-7.0.105
#指定容器暴露端口
EXPOSE 8080 6379
#启动redis
CMD ["/usr/java/redis5/redis-server", "/usr/java/redis5/redis.conf"]
#创建容器时默认启动tomcat
CMD ["/usr/java/tomcat/apache-tomcat-7.0.105/bin/catalina.sh", "run"]
将程序文件与 Dockerfile放在同一个目录,生成镜像
# 构建镜像
docker build -t tomcat-dev:1.0 .
# 构建前可用以下命令删除旧镜像
docker rmi tomcat-dev:1.0
三、启动容器
1、启动容器并提供对外服务,执行后 访问http://localhost:8080/即可
# 启动容器 容器名按微服务区分
docker run --name shangdao-customer -itd -p 8080:8080 -p 6379:6379 tomcat-dev:1.0 #启动容器
# 复制基础文件
docker cp /usr/andmobi/site/custom/config/ shangdao-customer:/usr/java/tomcat/apache-tomcat-7.0.105/
docker cp /usr/andmobi/site/custom/lib/ shangdao-customer:/usr/java/tomcat/apache-tomcat-7.0.105/
# 复制应用文件
docker cp /usr/andmobi/site/custom/sd-pms-custom-api-1.0.0-SNAPSHOT.jar shangdao-customer:/usr/java/tomcat/apache-tomcat-7.0.105/
# 重启容器
docker restart shangdao-customer
2、更新文件的命令
# 复制应用文件
docker cp /usr/andmobi/site/custom/sd-pms-custom-api-1.0.0-SNAPSHOT.jar shangdao-customer:/usr/java/tomcat/apache-tomcat-7.0.105/
docker restart shangdao-customer
3、如果是启动多服务,只需要重复第三部分启动容器环节,每个服务器的对外端口区分即可。