docker-compose 构建 lnmp
时间: 2023-09-10 08:10:40 浏览: 137
环境时,如何在容器启动后自动执行初始化脚本?
可以通过编写一个名为"init.sh"的脚本,将该脚本放置在Dockerfile所在的目录下,并在Dockerfile中添加以下命令:
```
COPY init.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/init.sh
CMD ["init.sh"]
```
这将在容器启动后自动执行init.sh脚本,以便执行任何必要的初始化步骤。请注意,该脚本必须是可执行的,您可以使用chmod命令将其设置为可执行。
相关问题
Docker-compose搭建LNMP
1. 安装Docker和Docker-compose
首先需要安装Docker和Docker-compose,可以通过以下命令进行安装:
```
# 安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 安装Docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
```
2. 创建Docker-compose.yml文件
创建一个名为docker-compose.yml的文件,用于定义容器的配置和服务。
```
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx:/etc/nginx/conf.d
- ./html:/usr/share/nginx/html
depends_on:
- php-fpm
php-fpm:
image: php:7.4-fpm
volumes:
- ./html:/var/www/html
environment:
- PHP_FPM_LISTEN=0.0.0.0:9000
mysql:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test
MYSQL_USER: test
MYSQL_PASSWORD: test
ports:
- "3306:3306"
volumes:
- ./mysql:/var/lib/mysql
```
其中,定义了三个服务:nginx、php-fpm和mysql。nginx服务将监听80端口,并将配置和静态文件挂载到容器中;php-fpm服务将监听9000端口,并将代码挂载到容器中;mysql服务将监听3306端口,并将数据挂载到容器中。
3. 启动容器
在Docker-compose.yml文件所在目录下,执行以下命令启动容器:
```
docker-compose up -d
```
其中,-d选项表示在后台运行容器。
4. 测试
在浏览器中访问http://localhost,如果看到"Welcome to nginx!"的提示,则表示容器已经成功启动。
可以在html目录下创建一个index.php文件,内容如下:
```
<?php
phpinfo();
```
然后在浏览器中访问http://localhost/index.php,如果看到PHP的信息,则表示php-fpm服务已经成功运行。
最后,可以在mysql服务中创建一个test数据库,并在其中创建一个test表,来测试mysql服务是否正常运行。
docker-compose编排lnmp
Docker Compose是一种工具,它允许开发者通过简单的YAML文件描述并管理复杂的Docker应用服务。当提到编排LNMP(Linux、Nginx、MySQL、PHP)这样的应用程序堆栈时,Docker Compose能够自动化部署和配置这些组件。
在`docker-compose.yml`文件中,你可以创建以下几个关键部分:
1. **services**:定义了服务及其依赖关系。例如:
```yaml
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
php:
image: php:fpm
depends_on:
- mysql
db:
image: mysql:5.7
```
这里分别定义了web服务器(基于Nginx)、PHP处理程序以及MySQL数据库服务。
2. **volumes**: 指定持久化数据存储,如Nginx配置文件或MySQL的数据目录。
3. **networks**:如果需要,可以设置网络连接,让服务间互相通信。
运行`docker-compose up`命令后,所有服务会自动下载镜像并按照配置启动。停止应用时,只需用`docker-compose down`即可。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)