docker部署项目(nginx,mysql)

本章主要讲windows的子系统wsl(Ubuntu20.4版本)上安装docker做本地测试环境,安装docker这里就不说了,主要讲怎么配置

1.配置mysql

docker run -d \
  --name my_mysql \
  -p 3307:3306 \
--restart=always \
  -v /my/local/mysql/data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=a \
  mysql:8

大致意思是,运行一个容器,名字叫my_mysql,可以自定义

然后将3307端口映射到容器内的3306端口,意思是当访问数据库时,用3307就可以了

连接数据库时的默认端口一般为3306,这里测试环境改成3307避免冲突,

然后是自动启动,这个很方便,docker容器启动时就会自己启动,不用一个个手工启动了

然后时挂载目录,这里就是把数据库的数据放在指定的文件夹里面,后面哪个路径是容器内部默认存放数据的文件

然后设置root用户密码,这里简单设置为a

最后跟上镜像的名字,如果没有这个镜像会自动下载的

目前国内大部分镜像都用不了了这里推荐一个我找到的目前2024/8/29可以用的镜像

https://docker.m.daocloud.io/

2.配置nginx

配置这个稍微有一点麻烦,前面其他步骤和上面差不多就不说了,主要是文件的挂载,

这里需要先创建这些文件夹,最好从容器中复制过来,这里直接把指令复制过来把,当时的我找了半天

卡了我好久

# 1. 创建文件夹
sudo mkdir -p /home/nginx/conf
sudo mkdir -p /home/nginx/conf/conf.d
sudo mkdir -p /home/nginx/log
sudo mkdir -p /home/nginx/html

# 2. 启动 Nginx 容器
docker run --name nginx -d nginx:1.24.0

# 3. 复制默认的 Nginx 配置文件和目录
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/
docker cp nginx:/var/log/nginx /home/nginx/
docker cp nginx:/usr/share/nginx/html /home/nginx/

# 4. 停止并删除旧的容器
docker stop nginx
docker rm nginx

# 5. 重新创建并启动 Nginx 容器,挂载主机目录
docker run --name nginx -p 9002:80 \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:1.24.0

nginx是用来发布前端的项目的,这个时候需要把前端项目放在/home/nginx/html下,看文件名应该也知道,然后还需要在配置文件中指定路径

这里用了个名为bank_springboot的项目,此时监听的端口为80,再创建容器时映射的端口为9002所有只要外部访问9002端口就能访问到这个项目,然后设置了index.html为项目首页

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html/bank_springboot;
        index  index.html index.htm;
    }

}

最后运行即可(学习用,怕忘记,当时卡了我一天差点奔溃)

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化技术,可以将应用程序及其依赖项打包成一个独立的、可移植的容器。一键部署PHP、NginxMySQLDocker环境可以简化环境配置和部署过程,提高开发和部署效率。 首先,我们需要创建一个Dockerfile,用于描述容器的构建过程。该文件指定了基础镜像、安装的软件包和配置等信息。例如,基础镜像可以选择官方提供的PHP和Nginx镜像,然后通过命令安装MySQL和其他依赖项。 接下来,我们可以使用Docker Compose来定义和管理多个容器的部署。在docker-compose.yml文件中,我们可以指定应用程序需要的所有服务,包括PHP、NginxMySQL等。通过一键部署命令,Docker Compose会自动下载镜像、创建容器,并配置它们之间的网络连接。 例如,以下是一个示例的docker-compose.yml文件: ```yaml version: '3' services: nginx: image: nginx ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf depends_on: - php php: image: php volumes: - ./app:/var/www/html mysql: image: mysql ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=your_password - MYSQL_DATABASE=your_database ``` 在这个例子中,Nginx容器映射主机的80端口到容器的80端口,通过挂载本地的nginx.conf文件来配置Nginx。PHP容器将本地的app目录挂载到容器的/var/www/html目录,MySQL容器暴露主机的3306端口,并配置了MySQL的root密码和数据库名。 最后,我们只需在项目的根目录下运行一条命令即可一键部署整个环境: ``` docker-compose up ``` 这条命令会根据docker-compose.yml文件的配置,自动下载所需的镜像并创建相应的容器,完成容器化的PHP、NginxMySQL环境的部署。之后,我们就可以访问Nginx的80端口来访问应用程序了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值