Ubuntu下Docker 搭建 LNMP 环境

安装 Docker

创建一个名为 docker的目录,我们将在此目录下安装 Docker:

$ mkdir ~/docker && cd ~/docker
$ sudo apt-get -y install docker.io

完成后,可以通过 docker version 来查看 Docker 的版本信息。docker help 来查看 Docker 的帮助文档。

更换 Docker 镜像源

Docker 工作的基本即使镜像。额可以认为一个镜像就是一个独立的由应用组成的虚拟机。因此,Docker 建立了 Docker Hub 来贮存镜像(就像 Github 语言)。
但由于网络的原因,Docker Hub 的访问速度很慢,推荐更换为国内的镜像源地址。下面我们采用 腾讯云 Docker 镜像加速,打开 /etc/docker/daemon.json 镜像配置文件:

$ vim /etc/docker/daemon.json

将配置更改如下:

{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}

退出保存 Vim 编辑器,输入以下命令重启 Docker:

$ systemctl restart docker

下载需要用到的 Docker 镜像

Docker 使用 docker pull <镜像> 来完成镜像的拉取,下面我们将要下载的镜像的有:

  • Nginx
  • PHP
  • PostgreSQL
    可以随时通过使用 sudo docker image ls 来查看已下载的镜像。

下载 Nginx 镜像

运行以下命令:

$ sudo docker pull nginx:alpine

下载 PHP 镜像

运行以下命令:

$ sudo docker pull php:7-fpm-alpine

下载 PostgreSQL 镜像

我们使用 PostgreSQL 代替 Mysql。两者在使用上的差异并不大,但是从大小上看, PostgreSQL 更适合于容器化,因此我们选择了它。
运行以下命令:

$ sudo docker pull postgres:alpine

启动 Nginx

我们将使用 docker run 来启动容器(启动后的镜像即为容器).

启动容器

通过以下命令启动容器:

$ sudo docker run --rm -d -p 80:80 --name nginx nginx:alpine

命令中涉及的参数:

  • --rm: 表示这个容器执行完后会被直接销毁
  • --name: 指定这个容器的名称
  • -d: 表示这个容器会在后台运行
  • -p: 表示开发容器的 80 端口到主机的 80端口
  • -v: 表示将 nginx 的配置文件挂载到容器的对应目录下
    如果发现无法访问,请检查以下:
  • 网址是否正确
  • 容器是否正确
  • 容器的80端口是否开放

停止容器

完成后可以在本机地址(http://localhost 或者http://127.0.0.1)上看到 Nginx 的默认欢迎界面。
我们可以使用以下命令停止一个容器:
sudo docker stop <容器ID或容器名称>

  • 容器ID就是您在运行上面那个命令时显示的一串字符,或者也可以使用 sudo docker container ls来查看所有容器及其ID。
  • 对于使用容器ID停止容器,您可以只输入前几个字符,Docker会自动匹配剩下的字符。
  • 但是对于使用容器名称停止容器,您必须完整地输入容器名称。
    例如:sudo docker stop 10d4b
    尝试停止Nginx:
$ sudo docker stop nginx

启动 PHP

由于 LNMP 共由3个容器组成,单个启动过于麻烦,推荐您使用 docker-compose 管理并启动它们。

安装 docker-compose

docker-compose 是 Docker 的多个服务部署工具,以方便地同时启动多个容器。
您可以使用以下命令方便地安装它。

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

创建 docker-compose 的配置文件

对于每一个你希望使用 docker-compose 来启动的项目,你都可以在项目的根目录下配置docker-compose.yml文件
下面我们来创建 docker-compose.yml 文件:

$ touch ~/docker/docker-compose.yml

编辑 docker-compose 的配置文件

打开 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
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: 表示将某目录或文件挂载到容器的响应位置上,后面的 rorw 表示对于容器是否可读写。此处挂载了配置文件、数据库和网站代码。
  • enviornment: 设置该容器的环境变量。此处通过环境变量的形式设置数据库的账号和密码。

创建 Nginx 的配置文件

创建nginx.conf文件:

$ touch ~/docker/nginx.conf
posted @   hahaking  阅读(458)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示