1. MySQL 部署
问题及解决方案
- 容器内的网络和外部机器不能直接通信
- 外部机器和宿主机可以直接通信
- 宿主机和容器可以直接通信
- 当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口撒谎那个。外部机器访问宿主机的该端口,从而间接访问容器的服务。(这种操作称为端口映射)
#搜索mysql镜像
docker search mysql
#拉取mysql镜像
docker pull mysql:5.6
#在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql
docker run -id \
-p 3307:3306 \
--name=c_mysql \
-v $pwd/conf:/etc/mysql/conf.d \
-v $pwd/logs:/logs \
-v $pwd/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6
参数说明
- -p 3307:3306 :将容器的 3306 端口映射到宿主机的 3307 端口
- -v $pwd/conf:/etc/mysql/conf.d : 将宿主机当前目录下的 conf/mt.cnf 挂载到容器的 /etc/mysql/conf.d/my.cnf 配置目录
- -v $pwd/logs:/logs : 将主机当前目录下的 logs 目录挂载到容器的/logs 目录
- -v $pwd/data:/var/lib/mysql : 将主机当前目录下的 data 目录挂载到容器的/var/lib/mysql 数据目录
- -e MYSQL_ROOT_PASSWORD=123456 :初始化 root 用户的密码
2. Tomcat 部署
#搜索mysql镜像
docker search tomcat
#拉取mysql镜像
docker pull tomcat
#在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat
docker run -id \
-p 8080:8080 \
--name=c_tomcat \
-v $pwd:/usr/local/tomcat/webapps \
tomcat
3. Nginx 部署
#搜索mysql镜像
docker search nginx
#拉取mysql镜像
docker pull nginx
#在/root目录下创建nginx目录用于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
docker run -id \
-p 80:80 \
--name=c_nginx \
-v $pwd/conf/nginx.conf:/etc/nginx/nginx.conf \ #这个文件需要提前准备好
-v $pwd/logs:/var/log/nginx \
-v $pwd/html:/usr/share/nginx/html \
nginx
4. Redis 部署
#搜索mysql镜像
docker search redis
#拉取mysql镜像
docker pull redis:5.0
#创建容器,设置端口映射
docker run -id --name=c_redis -p 6379:6379 redis:5.0
#使用外部机器windows来接redis
redis-cli.exe -h 192.168.149.135 -p 6379
标题:Docker部署Mysql, Tomcat, Nginx, Redis
作者:General
地址:https://ZZUGEneral.github.io/articles/2020/10/08/1602155887721.html
一个没有得到Java开发工作的测试员!