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 部署
五: ETCD 部署
bitnami/etcd Tags | Docker Hub
docker run -d --name Etcd-server \
-p 2379:2379 \
-p 2380:2380 \
-e ALLOW_NONE_AUTHENTICATION=yes \
-e ETCD_ADVERTISE_CLIENT_URLS=http://etcd-server:2379 \
bitnami/etcd:latest
评论区