Docker应用部署
前言:如上图,容器和外部机器是无法交互的,所以通过容器和宿主机的端口映射,来实现容器和外部机器的交互,当外部机器需要容器内的服务时,可以将容器的端口号映射到宿主机。
1 Mysql部署
需要注意的点是
红色区域一:$PWD指的是你当前创建的目录,我在练习的时候在root目录下创建了Mysql文件夹
红色区域二:mysql镜像的目录(必须指定已经存在的)
红色区域三:进入mysql命令行后,输入mysql命令需要以分号结尾,否则不会生效
docker run -id -p 3307:3306 --name=mysqlkk -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/var/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
补充:容器如果没有前置进程,则start后,会停止,使用/bin/bash -c "while true;do echo hello;sleep 5;done" 可以实现循环,然后保证容器处于启动状态。
2 Tomcat 部署
注意,使用哪个容器,则先在root目录下创建对应的文件夹,比如tomcat,切换到创建的目录
外部机器测试Tomcat,之所以可以访问是因为上图我们创建的网页,已经由于数据卷的原因挂载到对应的目录,也就是webapps下面
注意:在使用-v 参数挂载时,容器中的目录一定要指定到webapps/test ,如果只指定到webapps,则访问时会访问不到。