一、部署MySQL
- 搜索mysql镜像
docker search mysql
- 拉取mysql镜像
docker pull mysql:5.6
- 创建容器,设置端口映射、目录映射
# 在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql
进入conf目录新增my.cnf文件
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
docker run -itd \
-p 3306:3306 \
--name=mysql \
-v $PWD/conf/my.cnf:/etc/mysql/my.cnf \
-v $PWD/logs:/var/log/mysql \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql:5.7
- 参数说明:
- -p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。
- -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
- -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录
- -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录
- **-e MYSQL_ROOT_PASSWORD=123456:**初始化 root 用户的密码。
- 进入容器,操作mysql
docker exec -it mysql /bin/bash
二、部署Tomcat
- 搜索tomcat镜像
docker search tomcat
- 拉取tomcat镜像
docker pull tomcat
- 创建容器,设置端口映射、目录映射
# 在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat
docker run -d --name=tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
-
参数说明:
-
**-p 8080:8080:**将容器的8080端口映射到主机的8080端口
**-v $PWD:/usr/local/tomcat/webapps:**将主机中当前目录挂载到容器的webapps
-
- 使用外部机器访问tomcat
三、部署Nginx
安装完成之后进行测试:
sudo docker run --name nginx-test -p 80:80 -d nginx
- 搜索nginx镜像
docker search nginx
- 拉取nginx镜像
docker pull nginx
- 创建容器,设置端口映射、目录映射
# 在/root目录下创建nginx目录用于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
# 在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
vim nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name localhost;
location / { # /表示根目录,该配置表示Nginx默认打开/www下的index.html
root /etc/nginx/html/dist;
index index.html index.htm;
}
location /api/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://113.125.115.106:8081/;
}
}
}
server块设置
server {
listen 80;
server_name localhost;
charset utf-8;
location / { # /表示根目录,该配置表示Nginx默认打开/www下的index.html
root C:\foo;
index index.html index.htm;
}
location / {
root html/dist; # 服务的根目录,这里配置刚才的打包文件名称
index index.html index.htm; # 服务默认启动的主文件,可以写多个
}
location /api/ {
proxy_pass https://XXXXXXX; # 配置自己后台访问的ip端口或域名
proxy_set_header Host $host:$server_port;
}
error_page 404 /index.html; # 这行为了解决前端路由配置的是history的问题,如果是hash则不需要
docker run -itd \
--name nginx1 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/html:/etc/nginx/html \
-v $PWD/log:/var/log/nginx/ \
-p 80:80 \
nginx
- 参数说明:
- -p 80:80:将容器的 80端口映射到宿主机的 80 端口。
- -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机当前目录下的 /conf/nginx.conf 挂载到容器的 :/etc/nginx/nginx.conf。配置目录
- -v $PWD/logs:/var/log/nginx:将主机当前目录下的 logs 目录挂载到容器的/var/log/nginx。日志目录
- 使用外部机器访问nginx
四、部署Redis
- 搜索redis镜像
docker search redis
- 拉取redis镜像
docker pull redis:5.0
- 创建容器,设置端口映射
docker run -id --name=redis -p 6379:6379 redis:5.0 --requirepass 123456
- 使用外部机器连接redis
./redis-cli.exe -h 192.168.149.135 -p 6379
评论区