目 录CONTENT

文章目录

Docke 部署应用

Sakura
2023-09-11 / 0 评论 / 0 点赞 / 36 阅读 / 8009 字 / 正在检测是否收录...

mysql - Official Image | Docker Hub

通过官网查询镜像就可以查看如何使用

一: Nginx 部署应用

1. 不在 docker host 暴露端口

# 首先运行容器
docker run -d --name nginx-server -v /opt/nginx-server:/usr/share/nginx/html:ro nginx
...
...
...
1e0211f446de6ed2339c7f8c641dbe1d33a82f9da0d0200464284ee77036d15b

-d 后台运行

--name 执行容器名称

-v 将宿主主机中的 /opt/nginx-server 挂载到 /usr/share/nainx/html

:ro 只读

nginx 这里带tag和不带tag都是运行的最新版

# 查看容器信息
docker ps 

CONTAINER ID   IMAGE                                  COMMAND                  CREATED         STATUS          PORTS     NAMES
1e0211f446de   nginx                                  "/docker-entrypoint.…"   4 minutes ago   Up 4 minutes    80/tcp    nginx-server
# 查看容器详细信息
docker inspect 1e0 | grep "IPAddress"
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",

可以发现目前访问是 403 Forbidden 是因为之前docker run 命令运行后的时候 /opt/nginx-sever 是空的

curl http://172.17.0.2

<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.25.2</center>
</body>
ls /opt
nginx-server
echo "nginx is working" > /opt/nginx-server/index.html
# curl http://172.17.0.2
Nginx server is working

2. 暴露端口

docker run -d -p 80:80 --name nginx-server-port -v /opt/nginx-server-port:/usr/share/nginx/html:ro nginx

-p 80:80 表示将主机 ( 服务器 ) 的 9999 映射到 docker host 80端口

# 使用docker ps 命令查看docker信息
CONTAINER ID   IMAGE                                  COMMAND                  CREATED         STATUS             PORTS                                   NAMES
cb5d187065cf   nginx                                  "/docker-entrypoint.…"   2 minutes ago   Up 2 minutes       0.0.0.0:9999->80/tcp, :::9999->80/tcp   nginx-server-port
ls /opt/nginx-server-port
echo "nginx is running" > /opt/nginx-server-port/index.html

3. 修改配置文件

# 首先将运行的nginx复制配置文件 到 自己创建的目录
mkdir /opt/nginxcon/
docker cp nginx-server-port:/etc/nginx/nginx.conf /opt/nginxcon/
# 修改nginx配置文件
vim /opt/nginxcon/nginx.conf

-v 不仅可以加载网页文件 , 还可以加载配置文件

# 启动nginx容器 -v 挂载配置文件
docker run -d -p 9999:80 --name nginx-server-conf \
-v /opt/nginx-server-conf:/usr/share/nginx/html:ro \
-v /opt/nginxcon/nginx.conf:/etc/nginx/nginx.conf:ro \
nginx:latest

通过docekr top可以看到修改的配置文件已失效 ( worker进程改为两个 )

通过docekr exec 直接读出配置文件也可以

# 通过docker exec 直接读取
docker exec nginx-server-conf cat /etc/nginx/nginx.conf

user  nginx;
worker_processes  2;

同时也可以访问到部署的网站

二: Mysql 部署

mysql - Official Image | Docker Hub

1. 单节点 Mysql 部署

# 首先现将docker镜像下载到本地仓库
docker pull mysql:latest

# docker run 创建镜像
docker run -p 3306:3306 \
> --name mysql \ 
> -v /opt/mysql/log:/var/log/mysql \
> -v /opt/mysql/data:/var/lib/mysql \
> -v /opt/mysql/conf:/etc/mysql/conf.d \
> -e MYSQL_ROOT_PASSWORD=Sakura \
> -d \
> mysql:latest
b32179d4d153d1ed4d4025cafff6784cc15bfd6122050dd9dda6225fd5b4e942

三个-v分别是 mysql 的日志文件 , 数据文件 , 配置文件

# 通过容器中的客户端进行访问
docker exec -it -uroot -pSakura

# 登录成功后查看数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
# 查看数据库的数据文件 
ls /opt/mysql/data/
 auto.cnf        binlog.index   client-cert.pem     '#ib_16384_1.dblwr'   ibtmp1          mysql        performance_schema   server-cert.pem   undo_001
 binlog.000001   ca-key.pem     client-key.pem       ib_buffer_pool      '#innodb_redo'   mysql.ibd    private_key.pem      server-key.pem    undo_002
 binlog.000002   ca.pem        '#ib_16384_0.dblwr'   ibdata1             '#innodb_temp'   mysql.sock   public_key.pem       sys

安装mariadb 实现宿主主机访问mysql

2. Mysql 主从复制集群部署

三: Redis 部署

redis - Official Image | Docker Hub

1. Redis 单机

# 首先创建目录以及文件
mkdir /opt/redis/conf
touch /opt/redis/conf/redis.cong
# 使用docekr run 启动redis
docker run -p 6379:6379 --name redis 
-v /opt/redis/data:/data \
-v /opt/redis/conf:/etc/redis \
-d redis redis-server /etc/redis/redis.conf

两个 -v 分别是数据 , 配置的挂载目录

连接 Redis-cli

# 连接redis-cli
docker run -it redis:latest redis-cli -h 这里填服务器的IP
8.130.86.133:6379> 

# 查看redis版本
docker run -it redis:latest redis-server -v
Redis server v=7.2.1 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=cee76400fd995ab3

2. Redis 集群

四: ES 部署

五: RabbitMQ 部署

0

评论区