1

1.Dockerfile

docker 手册:
中文免费手册 [Docker — 从入门到实践]
https://vuepress.mirror.docke...

准备:
下载镜像:https://hub.docker.com

centos:7 镜像
jdk压缩包: jdk-8u212-linux-x64.tar.gz
tomcat7压缩包: apache-tomcat-7.0.96.tar.gz

在root目录下,创建tomcat7目录

mkdir tomcat7

把jdk8、tomcat7放入tomcat7目录中,并创建Dockerfile文件

cd tomcat7
vim Dockerfile

image.png

Dockerfile文件(中文注释):
在Dockerfile不能写中文,配置时会用第二个配置

# 以centos7为基础,安装oracle jdk8和tomcat7
FROM centos:7

# ADD命令将压缩包传入镜像中的指定目录,并同时解压缩
ADD jdk-8u212-linux-x64.tar.gz /opt/

ADD apache-tomcat-7.0.96.tar.gz /usr/

# 为了方便,把文件夹名称改得简单一点
RUN mv /usr/apache-tomcat-7.0.96 /usr/tomcat

# 设置环境变量
ENV JAVA_HOME=/opt/jdk1.8.0_212 \
    CATALINA_HOME=/usr/tomcat \
    PATH=$PATH:/opt/jdk1.8.0_212/bin:/usr/tomcat/bin

# 暴露容器的8080端口
EXPOSE 8080

# 设置启动容器时自动运行tomcat
ENTRYPOINT /usr/tomcat/bin/startup.sh && tail -F /usr/tomcat/logs/catalina.out

Dockerfile文件:

FROM centos:7
ADD jdk-8u212-linux-x64.tar.gz /opt/
ADD apache-tomcat-7.0.96.tar.gz /usr/
RUN mv /usr/apache-tomcat-7.0.96 /usr/tomcat
ENV JAVA_HOME=/opt/jdk1.8.0_212 \
    CATALINA_HOME=/usr/tomcat \
    PATH=$PATH:/opt/jdk1.8.0_212/bin:/usr/tomcat/bin
EXPOSE 8080
ENTRYPOINT /usr/tomcat/bin/startup.sh && tail -F /usr/tomcat/logs/catalina.out

image.png

保存退出:
按Esc键

:wq

查看:

ll

image.png

使用 Dockerfile 构建镜像:

docker build -t tomcat:7 .

注意末尾的点,表示构建过程中从当前目录寻找文件

image.png

查看镜像:

docker images

image.png

查看镜像设置:

docker history tomcat:7

image.png

2.启动容器

准备存储目录

webapps目录,例如 /opt/webapps
logs目录,例如 /var/lib/tomcat-logs

构建命令:
docker build -t 镜像名:标签 文件夹路径

docker run -d --name cat7 -p 80:8080 \
-v /opt/web:/tomcat/webapps/ROOT tomcat:7

"" :是拼接符,把后面的代码拼接在一起执行

image.png

测试redis容器:

docker ps -a
docker run -d --name redis7000 --restart=always \
-p 7000:6379 redis
docker run -d --name redis7001 --restart=always \
-p 7001:6379 redis
docker run -d --name redis7002 --restart=always \
-p 7002:6379 redis
docker exec -it redis7000 redis-cli

image.png

清空容器:

docker rm -f redis7000 redis7001 redis7002

image.png

4.web应用

虚拟网络:

4.1 如果有其他网络先删除

# 查看虚拟网络
docker network ls
docker network rm my-net

image.png

4.2 创建dockernet虚拟网络:

新建虚拟网络 my-net :
--subnet 可以指定ip和进制

# docker network create my-net --subnet 172.22.0.0/24
docker network create --subnet=172.18.0.0/24 dockernet

# 查看虚拟网络
docker network ls

image.png

4.3 创建mysql数据库:

创建、查看数据卷:

docker volume create mysql-data
docker volume ls

image.png

启动mysql容器:

docker run -d --restart=always \
-v mysql-data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-p 3306:3306 \
--net dockernet \
--ip 172.18.0.11 \
--name mysql mariadb

image.png

docker ps -a
docker inspect mysql

4.4 连接数据库:

image.png

导入 /docker/EasyMall/easymall.sql

image.png

4.5 启动web应用

mkdir ~/mall
cd ~/mall

把ROOT.war上传到mall目录中

docker run -d --restart=always \
-v /opt/mall:/usr/tomcat/webapps \
-p 80:8080 \
--net dockernet \
--ip 172.18.0.12 \
--name web \
tomcat:7

测试地址:
http://192.168.64.150


JayX
4 声望0 粉丝