Docker 中使用Nginx网站的搭建
Docker 中使用Nginx网站的搭建
使用Nginx 来搭建完整的前置站点,实现后向的代理,这篇文章中简单介绍一个搭建的步骤,至于Nginx 的知识,Docker 的使用可以参考对应的文档。
前提条件
- Ubuntu (20.04)
- Docker (23.0.1 Community)
- Nginx
安装步骤
- Ubuntu
- 云服务器,国内的国外的都行,花点钱买一台
- Docker 安装步骤,参考链接,做个简单的翻译
- 首先更新系统
sudo apt update - 安装一些依赖的软件
sudo apt install apt-transport-https ca-certificates curl software-properties-common - 将Docker 官网仓储添加到系统的GPGkey中
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - 将Docker 仓储添加到APT源中
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - 更新系统
sudo apt update - 再次确认一下,你是从docker仓储中安装而不是ubuntu 中安装
apt-cache policy docker-ce - 安装Docker
sudo apt install docker-ce - 检查一下Docker的守护进程是否运行
sudo systemctl status docker
- 首先更新系统
- 介绍几个Docker 中常用的命令
| Command | Comments |
|---|---|
| attach | Attach local standard input, output, and error streams to a running container |
| build | Build an image from a Dockerfile |
| commit | Create a new image from a container's changes |
| cp | Copy files/folders between a container and the local filesystem |
| create | Create a new container |
| diff | Inspect changes to files or directories on a |
| events | Get real time events from the server |
| exec | Run a command in a running container |
| export | Export a container's filesystem as a tar archive |
| history | Show the history of an image |
| images | List images |
| import | Import the contents from a tarball to create a |
| info | Display system-wide information |
| inspect | Return low-level information on Docker objects |
| kill | Kill one or more running containers |
| load | Load an image from a tar archive or STDIN |
| login | Log in to a Docker registry |
| logout | Log out from a Docker registry |
| logs | Fetch the logs of a container |
| pause | Pause all processes within one or more containers |
| port | List port mappings or a specific mapping for the container |
| ps | List containers |
| pull | Pull an image or a repository from a registry |
| push | Push an image or a repository to a registry |
| rename | Rename a container |
| restart | Restart one or more containers |
| rm | Remove one or more containers |
| rmi | Remove one or more images |
| run | Run a command in a new container |
| save | Save one or more images to a tar archive (streamed to STDOUT by default) |
| search | Search the Docker Hub for images |
| start | Start one or more stopped containers |
| stats | Display a live stream of container(s) resource usage statistics |
| stop | Stop one or more running containers |
| tag | Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE |
| top | Display the running processes of a container |
| unpause | Unpause all processes within one or more containers |
| update | Update configuration of one or more containers |
| version | Show the Docker version information |
| wait | Block until one or more containers stop, then print their exit codes |
-
Nginx 安装步骤 参考链接
- 拉取docker 源
docker pull nginx - 启动nginx
docker run --name docker-nginx -p 80:80 nginx- 这样我们就启动了一个默认配置下的nginx 服务器,监听端口在80.
- 拉取docker 源
-
下面我们要启动两个不同的网站,他们在同一台服务器下,同一个端口,只是通过不同的域名访问。假设域名为DomainA.com, DomainB.com端口都是80.
- 首先基于上一步,我们先从docker 中copy 出一个默认的配置文件
docker cp docker-nginx:/etc/nginx/conf.d/default.conf ~/default.conf - 然后修改这个文件,先复制里面的server directive, 然后将里面的server 配置成DomainA.com, 第二个server 配置成DomainB.com
- 修改里面的root, 加入改成/var/www/SiteA, /var/www/SiteB
- 在我们的ubuntu 上也新建一个SiteA,SiteB 的目录放入html.
- 我们通过磁盘挂载的方式来启动nginx,具体参考这个链接
- 首先我们把上一步的nginx 删除
docker rm docker-nginx - 重新启动
docker run --name docker-nginx -p 80:80 -v /local/SiteA:/var/www/SiteA -v /local/default.conf:/etc/nginx/conf.d/default.conf -v /local/SiteB:/var/www/SiteB
Happy Coding
- 首先基于上一步,我们先从docker 中copy 出一个默认的配置文件

浙公网安备 33010602011771号