Docker 应用部署

本文详细介绍了如何使用Docker部署MySQL、Tomcat、Nginx和Redis,包括拉取镜像、创建容器、设置端口映射、数据卷以及配置文件的定制,提供了每个服务的具体命令和配置示例,帮助读者掌握在Docker环境下快速部署常用开发工具的方法。
摘要由CSDN通过智能技术生成


提示:以下是本篇文章正文内容,Docker 系列学习将会持续更新

一、部署 MySQL


①搜索并拉取 mysql 镜像

docker search mysql
docker pull mysql:5.7

②创建容器目录映射

# 在/root/docker-data目录下创建mysql目录
mkdir ~/docker-data/mysql
cd ~/docker-data/mysql

③创建并启动容器,设置端口映射$PWD 表示当前宿主机位置,即 /root/docker-data/mysql

docker run -id \
-p 3307:3306 \
--name=c_mysql \
-v $PWD/conf/my.cnf:/etc/mysql/my.cnf \
-v $PWD/conf/conf.d:/etc/mysql/conf.d \
-v $PWD/logs:/var/log/mysql \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7

自定义 my.cnf 内容如下:

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000

default-time-zone='+08:00'
innodb_buffer_pool_size = 128M
port = 3306
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
pid-file=/var/run/mysqld/mysqld.pid

# 允许连接失败的次数。
max_connect_errors=10

#引擎
default-storage-engine=INNODB

log-bin = mysql-bin
# #设置保存时间
expire_logs_days=7

# #注意5.7以及更高版本需要配置本项:server-id=123454(自定义,保证唯一性); server-id 一般去ip后三位
server-id=1
# #binlog格式,有3种statement,row,mixed
binlog-format=ROW
# #表示每1次执行写入就与硬盘同步,会影响性能,为0时表示,事务提交时mysql不做刷盘操作,由系统决定
sync-binlog=1

# ##开启慢sql
slow_query_log=on
slow_query_log_file=/var/lib/mysql/slow-query.log
long_query_time=1

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

④进入容器,操作 mysql

docker exec -it c_mysql /bin/bash
mysql -uroot -p123456

⑤使用外部机器连接容器中的 mysql
在这里插入图片描述

回到目录…

二、部署 Tomcat


①搜索并拉取 tomcat 镜像

docker search tomcat
docker pull tomcat:8

②创建容器目录映射

# 在/root/docker-data目录下创建tomcat目录
mkdir ~/docker-data/tomcat
cd ~/docker-data/tomcat

③创建并启动容器,设置端口映射

docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat:8

④使用外部机器访问 tomcat

pwd          # /root/docker-data/tomcat
mkdir test
cd test
touch a.html
vim a.html   # <h1>Hello,I am dockerCloud tomcat<h1>

在这里插入图片描述

回到目录…

三、部署 Nginx


①搜索并拉取 nginx 镜像

docker search nginx
docker pull nginx

②创建容器目录映射

# 在/root/docker-data目录下创建nginx目录用于存储nginx数据信息
mkdir ~/docker-data/nginx
cd ~/docker-data/nginx
mkdir conf
cd conf
# 在conf下创建nginx.conf文件,粘贴下面内容
vim nginx.conf

官方提供的 nginx.conf 配置文件:

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/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  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

③创建并启动容器,设置端口映射

docker run -id --name=c_nginx \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/conf.d/default.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx

④使用外部机器访问 nginx

a. 此时 nginx 的 html 目录为空,也没有做任何代理。
在这里插入图片描述

b. 调用自己 html 目录下的 index.html 文件
在这里插入图片描述

c. 用 nginx 做反向代理

 如果 nginx 代理宿主机的应用,则参考:Linux 安装 nginx 详细教程 nginx 做反向代理。

 如果 nginx 想代理其它容器中的应用,则参考:Docker Compose 构建多容器应用 编排 Nginx + Springboot 项目。

回到目录…

四、部署 Redis


①搜索并拉取 redis 镜像

docker search redis
docker pull redis:4.0

②创建容器目录映射

mkdir ~/docker-data/redis
cd ~/docker-data/redis

③创建并启动容器,设置端口映射

可以不挂载数据卷,直接启动:

docker run -id --name=c_redis -p 6379:6379 redis:4.0

挂载数据卷:

docker run -id --name=c_redis \
-p 6379:6379 \
-v /$PWD/conf/redis.conf:/etc/redis.conf \
-v /$PWD/data:/data \
redis:4.0

启动前,先在宿主机中添加 /redis/conf/redis.conf 自定义配置文件:

bind 0.0.0.0
port 6379
daemonize yes
logfile "6379.log"
dir /data
databases 16

# rdb 相关配置
dbfilename dump-6379.rdb
# rdb保存时压缩数据
rdbcompression yes
# rdb文件格式校验
rdbchecksum yes
stop-writes-on-bgsave-error yes
save 10 2

# aof 相关配置
appendonly yes
appendfsync always
appendfilename appendonly-6379.aof

④使用外部机器连接 redis

redis-cli.exe -h 1.15.76.95 -p 6379

回到目录…


总结:
提示:这里对文章进行总结:
本文是对Docker的学习,学会了如何在 Docker 中进行应用部署,并且将我们常用的开发工具如mysql、tomcat、nginx、redis进行了部署,还给它们配置了数据卷。之后的学习内容将持续更新!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只咸鱼。。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值