如何在bitnami+docker+nginx中运行建网站
How do I run a website in bitnami+docker+nginx
我正在接管一个网站 https://www.funfun.io。不幸的是,我无法再联系到以前的开发人员。
这是一个AngularJS+Node+Express+MongoDB应用程序。他决定在服务器中使用bitnami+docker+nginx。这里是 docker-compose.yml
:
version: "3"
services:
funfun-node:
image: funfun
restart: always
build: .
environment:
- MONGODB_URI=mongodb://mongodb:27017/news
env_file:
- ./.env
depends_on:
- mongodb
funfun-nginx:
image: funfun-nginx
restart: always
build:
context: .
dockerfile: Dockerfile.nginx
ports:
- "3000:8443"
depends_on:
- funfun-node
mongodb:
image: mongo:3.4
restart: always
volumes:
- "10studio-mongo:/data/db"
ports:
- "27018:27017"
networks:
default:
external:
name: 10studio
volumes:
10studio-mongo:
driver: local
Dockerfile.nginx
:
FROM bitnami/nginx:1.16
COPY ./funfun.io /opt/bitnami/nginx/conf/server_blocks/default.conf
COPY ./ssl/MyCompanyLocalhost.cer /opt/MyCompanyLocalhost.cer
COPY ./ssl/MyCompanyLocalhost.pvk /opt/MyCompanyLocalhost.pvk
Dockerfile
:
FROM node:12
RUN npm install -g yarn nrm --registry=https://registry.npm.taobao.org && nrm use cnpm
COPY ./package.json /opt/funfun/package.json
WORKDIR /opt/funfun
RUN yarn
COPY ./ /opt/funfun/
CMD yarn start
在我的本地机器上,我可以使用 npm start
在网络浏览器中测试网站。
我可以访问 Ubuntu 服务器。但是我是bitnami+docker+nginx的新手,有以下问题:
在Ubuntu服务器的命令行中,如何检查服务是否运行(除了在浏览器中启动网站)?
如何关闭和重启服务?
- 以前,如果没有 docker,我们可以从
sudo systemctl enable mongod
开始 mongodb。现在,有了 docker,我们如何开始 mongodb?
1.
docker-compose ps
将为您提供容器的状态
2.
docker-compose stop
将停止你的容器,保持它们的状态然后你可以启动它们,因为它们正在使用 docker-compose up
docker-compose kill
将删除您的容器
docker-compose restart
将重启您的容器
3.
通过使用官方 mongo 图像声明您的 mongodb,您的容器会在您执行 docker-compose up
时启动,无需任何其他干预。
或者您可以将 command: mongod --auth
直接添加到您的 docker-compose.yml
docker的官方文档很详细,对这一切帮助很大,继续看https://docs.docker.com/compose/
首先,要在本地部署组合文件中提到的服务,您应该运行下面的命令
docker-compose up
docker-compose up -d # in the background
在 运行 执行上述命令后 docker 容器将在您的计算机上创建并可用。
列出 运行ning 容器
docker ps
docker-compose ps
停止容器
docker stop ${container name}
docker-compose stop
mongodb 是 docker-compose 文件的一部分,一旦您启动其他服务,它将 运行ning。如果它崩溃或您重新启动计算机,它也会自动重新启动。
最后一点,由于您使用的是外部网络,因此您可能需要在启动服务之前创建网络。
我正在接管一个网站 https://www.funfun.io。不幸的是,我无法再联系到以前的开发人员。
这是一个AngularJS+Node+Express+MongoDB应用程序。他决定在服务器中使用bitnami+docker+nginx。这里是 docker-compose.yml
:
version: "3"
services:
funfun-node:
image: funfun
restart: always
build: .
environment:
- MONGODB_URI=mongodb://mongodb:27017/news
env_file:
- ./.env
depends_on:
- mongodb
funfun-nginx:
image: funfun-nginx
restart: always
build:
context: .
dockerfile: Dockerfile.nginx
ports:
- "3000:8443"
depends_on:
- funfun-node
mongodb:
image: mongo:3.4
restart: always
volumes:
- "10studio-mongo:/data/db"
ports:
- "27018:27017"
networks:
default:
external:
name: 10studio
volumes:
10studio-mongo:
driver: local
Dockerfile.nginx
:
FROM bitnami/nginx:1.16
COPY ./funfun.io /opt/bitnami/nginx/conf/server_blocks/default.conf
COPY ./ssl/MyCompanyLocalhost.cer /opt/MyCompanyLocalhost.cer
COPY ./ssl/MyCompanyLocalhost.pvk /opt/MyCompanyLocalhost.pvk
Dockerfile
:
FROM node:12
RUN npm install -g yarn nrm --registry=https://registry.npm.taobao.org && nrm use cnpm
COPY ./package.json /opt/funfun/package.json
WORKDIR /opt/funfun
RUN yarn
COPY ./ /opt/funfun/
CMD yarn start
在我的本地机器上,我可以使用 npm start
在网络浏览器中测试网站。
我可以访问 Ubuntu 服务器。但是我是bitnami+docker+nginx的新手,有以下问题:
在Ubuntu服务器的命令行中,如何检查服务是否运行(除了在浏览器中启动网站)?
如何关闭和重启服务?
- 以前,如果没有 docker,我们可以从
sudo systemctl enable mongod
开始 mongodb。现在,有了 docker,我们如何开始 mongodb?
1.
docker-compose ps
将为您提供容器的状态
2.
docker-compose stop
将停止你的容器,保持它们的状态然后你可以启动它们,因为它们正在使用docker-compose up
docker-compose kill
将删除您的容器docker-compose restart
将重启您的容器
3.
通过使用官方 mongo 图像声明您的 mongodb,您的容器会在您执行
docker-compose up
时启动,无需任何其他干预。或者您可以将
command: mongod --auth
直接添加到您的 docker-compose.yml
docker的官方文档很详细,对这一切帮助很大,继续看https://docs.docker.com/compose/
首先,要在本地部署组合文件中提到的服务,您应该运行下面的命令
docker-compose up
docker-compose up -d # in the background
在 运行 执行上述命令后 docker 容器将在您的计算机上创建并可用。
列出 运行ning 容器
docker ps
docker-compose ps
停止容器
docker stop ${container name}
docker-compose stop
mongodb 是 docker-compose 文件的一部分,一旦您启动其他服务,它将 运行ning。如果它崩溃或您重新启动计算机,它也会自动重新启动。
最后一点,由于您使用的是外部网络,因此您可能需要在启动服务之前创建网络。