一:docker部署mysql
1.启动
docker run --name test-mysql -p 33066:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
--name 后面的是docker容器名
-p 33066:3306 这里需要注意 `33066` 是你**链接mysql的时候的`Port`。**
-e MYSQL_ROOT_PASSWORD 是设置mysql的root账号密码
-d mysql 是你的镜像标签
2.shell操作
docker exec -it test-mysql bash
root@23289a387666u5:/#
mysql -uroot -p123456
二:docker部署tomcat
docker run -d -p 8083:8080 tomcat 8083是宿主机端口,8080是docker的虚拟端口
docker部署web项目:
方式1:
1.启动tomcat容器:docker run -d -p 8083:8080 --name myweb tomcat
2.在宿主机创建/docker_file文件夹,获取war包
3.复制war包到tomcat容器内:docker cp /docker_file/xxx.war myweb:/usr/local/tomcat/webapps
4.重启myweb:docker restart myweb
注意:如果要设置部署的web项目contextpath为/
1.docker cp myweb:/usr/local/tomcat/conf/server.xml /docker_file/
2.vi /docker_file/server.xml
在<host></host>标签中添加<Context path="" docBase="/usr/local/tomcat/webapps/myProjectName" debug="0" reloadable="true"></Context> 即可
3.docker exec -it myweb /bin/bash
4.cd conf 并 rm -rf server.xml
5.exit退容器,docker cp /docker_file/server.xml myweb:/usr/local/tomcat/conf/即可
6.docker restart myweb
方式二: docker run -d -p 8083:8080 --name myweb -v /docker_file/web.war:/usr/local/tomcat/webapps/web.war tomcat
前两种方式一旦挂机或进程停止,设置的文件都会失效,适用于测试环境
方式三:创建自己的镜像,固化(适合生产环境
我自己创建镜像的目的是把war包固化到tomcat容器中,并设置contextpath为/
1.mkdir DockerFile 并在当前文件夹下准备所需要的文件(server.xml,web.war)
2.vi DockerFile
具体内容:
from tomcat
MAINTAINER 2311759904@qq.com
RUN rm -rf /usr/local/tomcat/webapps/*
COPY web.war /usr/local/tomcat/webapps/
RUN rm -rf /usr/local/tomcat/conf/server.xml
COPY server.xml /usr/local/tomcat/conf/
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
3.构建新的镜像
docker build --file DockerFile -t=myProject:v1 .
注意:最后加. ,不然报 "docker build" requires exactly 1 argument.
4.docker ps可查看是否新增镜像