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
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
保存退出:
按Esc键
:wq
查看:
ll
使用 Dockerfile 构建镜像:
docker build -t tomcat:7 .
注意末尾的点,表示构建过程中从当前目录寻找文件
查看镜像:
docker images
查看镜像设置:
docker history tomcat:7
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
"" :是拼接符,把后面的代码拼接在一起执行
测试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
清空容器:
docker rm -f redis7000 redis7001 redis7002
4.web应用
虚拟网络:
4.1 如果有其他网络先删除
# 查看虚拟网络
docker network ls
docker network rm my-net
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
4.3 创建mysql数据库:
创建、查看数据卷:
docker volume create mysql-data
docker volume ls
启动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
docker ps -a
docker inspect mysql
4.4 连接数据库:
导入 /docker/EasyMall/easymall.sql
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://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。