Docker 搭建 LNMP 环境
安装 Docker
mkdir ~/docker && cd ~/docker &&
sudo apt-get -y install docker.io
可以以通过docker version
来查看 Docker 的版本信息,docker help
来查看 Docker 的帮助文档
更换镜像源
Docker 工作的基础即是镜像。您可以认为一个镜像即是一个独立的由应用组成的虚拟机。为此,docker 建立了 Docker Hub 来存贮镜像(就像GitHub一样)。
但是由于网络原因, Docker Hub 的访问速度过慢,推荐您更换为国内的镜像源地址。这里我们采用 腾讯云 Docker 镜像加速,请输入下面的命令:
sudo su -
cat >> /etc/docker/daemon.json <<- EOF
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF
systemctl restart docker
exit
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 镜像
sudo docker pull postgres:alpine
启动容器
使用以下命令来启动容器:
sudo docker run --rm -d -p 80:80 --name nginx nginx:alpine
- 这个命令中涉及到的参数有:
--rm
:表示这个容器执行完后会被直接销毁。--name
:指定这个容器的名称。-d
:表示这个容器会在后台运行。-p
:表示开放容器的80端口到主机的80端口。-v
:表示将nginx的配置文件挂载到容器的对应目录下。
- 如果您发现无法访问,请检查:
- 网址是否正确(网址后面不能接任何东西)
- 容器是否已启动
- 容器的80端口是否已开放
您可以使用以下命令来停止一个容器:
sudo docker stop <容器ID或容器名称>
容器ID就是您在运行上面那个命令时显示的一串字符,或者您可以使用sudo docker container ls
来查看所有容器及其ID。 对于使用容器ID停止容器,您可以只输入前几个字符,Docker会自动匹配剩下的字符。 但是对于使用容器名称停止容器,您必须完整地输入容器名称。
例如:sudo docker stop 91b6
sudo docker stop nginx
由于 LNMP 共由3个容器组成,单个启动过于麻烦,推荐您使用 docker-compose 管理并启动它们。
安装 docker-compose
docker-compose 是 Docker 的多个服务部署工具,以方便地同时启动多个容器。
使用以下命令方便地安装:
sudo apt-get install -y python-pip && sudo pip install docker-compose
🏆 每日挑战:你知道答案吗?
如何在 Python 中检查变量的类型?
文章链接:https://www.lilianhua.com/docker-builds-lnmp-environment.html