首页 > 其他分享 >Docker-Compose快速搭建LNMP

Docker-Compose快速搭建LNMP

时间:2023-04-02 22:48:48浏览次数:40  
标签:Compose 80 sudo LNMP nginx compose docker php Docker

Docker-Compose

1.安装Docker

sudo apt -y install docker.io

docker version 查看版本号

docker help 查看帮助文档


2.更换镜像源

sudo su -
cat >> /etc/docker/daemon.json <<- EOF
{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF
systemctl restart docker
exit

3.下载镜像

sudo docker pull nginx:alpine

sudo docker pull php:7-fpm-alpine

sudo docker pull postgres:alpine


4.启动容器

sudo docker run --rm -d -p 80:80 --name nginx nginx:alpine
  • 这个命令中涉及到的参数有:
    -- rm:表示这个容器执行完后会被直接销毁。
    --name:指定这个容器的名称。
    -d:表示这个容器会在后台运行。
    -p:表示开放容器的80端口到主机的80端口。
    -v:表示将nginx的配置文件挂载到容器的对应目录下。
  • localhost:80访问nginx

5.停止容器

docker stop dockerId

6.安装docker-compose工具

sudo apt-get install -y python-pip && sudo pip install docker-compose

7.配置docker-compose.yml

touch ~/docker/docker-compose.yml
version: "3"
services:

  Nginx:
    image: nginx:alpine
    ports:
      - 80:80
    volumes:
      - ./web:/usr/share/nginx/html:ro
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
# ./ 指.yml所在的路径
  PHP:
    image: undefined01/php:7-fpm-alpine
    volumes:
      - ./web:/var/www/html:rw

  Database:
    image: postgres:alpine
    environment:
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: "rootroot"
    volumes:
      - ./data:/var/lib/postgresql/data:rw
  • 这个配置文件中涉及到的参数有:
    • version:表示这个配置文件使用第三套标准。
    • services:表示需要启动的服务(容器)列表。
  • 对于每一个服务,又有:image:表示该服务使用的镜像。
    • ports:表示该服务开放的端口。
    • volumes:表示将某目录或文件挂载到容器的相应位置上,后面的ro、rw表示于容器是否可读写。此处挂载了配置文件、数据库和网站代码。
    • enviornment:设置该容器的环境变量。此处通过环境变量的形式设置数据库的账号和密码。

8.配置nginx.conf

touch ./nginx.conf #docker-compose.yml所在路径

截图

server {
    listen       80;
    server_name  localhost;

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

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass   PHP:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

9.启动docker-compose

sudo docker-compose up -d

sudo docker container ls #查看启动服务
  • 给映射文件夹赋权限,避免没有权限而导致的访问失败
sudo chmod -R 777 ./data ./web

10.测试

  • 创建index.php touch ~/docker/web/index.php
<?php
phpinfo();
?>
  • 创建test.php touch ~/docker/web/test.php
<?php
$dbconn = pg_connect('host=Database user=postgres password=rootroot') or die('Could not connect: ' . pg_last_error());
pg_query('CREATE TABLE IF NOT EXISTS test ( tester INT )');

pg_query('INSERT INTO test VALUES (0)');
$res = pg_query('SELECT * FROM test') or die('Query failed: ' . pg_last_error());
$num = pg_num_rows($res);
echo "You have visited this site $num times";

pg_free_result($res);
pg_close($dbconn);
?>
  • 停止服务
    sudo docker-compose stop 
    

标签:Compose,80,sudo,LNMP,nginx,compose,docker,php,Docker
From: https://www.cnblogs.com/EA7-King/p/17281611.html

相关文章

  • Docker 镜像命令
    Docker镜像命令1.Dockerimages--列出本地镜像命令:dockerimages[OPTIONS][REPOSITORY[:TAG]]选项-a:列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);--digests:显示镜像的摘要信息;-f:显示满足条件的镜像;--format:指定返回值的模板文件;--no-trunc......
  • docker安装zabbix
    一、概述Zabbix是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix基于存储的数据提供出色的报告和数据可视化。这些功能使得Zabbix成为容量规划的理想选......
  • docker、compose安装及基础操作命令
    docker安装下载Docker依赖的组件yum-yinstallyum-utilsdevice-mapper-persistent-datalvm2设置下载docker服务的镜像源(阿里云)yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装docker服务yum-yinstalldocker-ce设置开机......
  • 在docker中配置Oracle11g
    在docker中配置Oracle11gdocker镜像拉取及相关配置1.在docker打开的情况下,使用下方命令拉去镜像,大概需要下载3个G的image文件dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g2.启动Oracle镜像并为镜像新建容器,注意此处的oracle11g即为容器名,可以自主设置......
  • Docker镜像之Docker Compose讲解
    目录1docker-compose1.1compose编排工具简介1.2安装docker-compose1.3编排启动镜像1.4haproxy代理后端docker容器1.5安装socat直接操作socket控制haproxy1.6compose中yml配置指令参考1.6.1简单命令1.6.2build1.6.3depends_on1.6.4deploy1.6.5logging1.6.6network_m......
  • Docker网络配置
    bridgemacvlandockernetworkcreate-dmacvlan--subnet=192.168.1.0/24--gateway=192.168.1.1-oparent=enp3s0-omacvlan_mode=bridgevlan暴露IP--net=bridgemacvlan--ip=IP桥接dockernetworkcreate-dbridge--subnet192.168.1.0/16--gateway192.168.1.1c......
  • DockerFile
    DockerFile构建镜像首先通过一张图来了解Docker镜像、容器和Dockerfile三者之间的关系。通过上图可以看出使用Dockerfile定义镜像,运行镜像启动容器。Dockerfile概念Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些......
  • Docker仓库
    一、官方标配:Registry私有镜像仓库DockerHub作为Docker默认官方公共镜像,如果想要自己搭建私有镜像残酷,官方也提供Registry镜像,使得我们搭建**私有仓库**变得非常简单。所谓**私有仓库**,也就是在本地(局域网)搭建的一个类似公共仓库的东西,搭建好之后,我们可以将镜像提交到......
  • Docker-Swarm
    Docker-Swarm一、什么是DockerSwarm?Swarm是Docker的一个编排工具,在之前我们只是在一台机器来进行docker的管理:但是有时容器并不一定都在一台主机上,如果是分布式的处于多台主机上,这时就可以借助于Swarm,Swarm是Docker自带的编排工具,只要你安装了Docker就会存在DockerSwar......
  • 基于docker和cri-dockerd部署k8sv1.26.3
    cri-dockerd是什么?在Kubernetesv1.24及更早版本中,我们使用docker作为容器引擎在k8s上使用时,依赖一个dockershim的内置k8s组件;k8sv1.24发行版中将dockershim组件给移除了;取而代之的就是cri-dockerd(当然还有其它容器接口);简单讲CRI就是容器运行时接口(ContainerRunt......