docker部署项目
简单部署尝试
Dockerfile 中书写镜像启动数据
DOckerfile 文件添加到将要启动的项目中
FROM node:16
ENV PORT=3002
WORKDIR /usr/src/bot
COPY package.json /usr/src/bot
COPY ./ /usr/src/bot
EXPOSE 3002
CMD npm start
在要启动的项目目录中终端运行
docker build -t name:v1 .
然后运行项目
docker run -p 3000:3000 name
//
绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
一定要写 -p
映射端口,不然不能从服务器外网访问
docker-compose 启动项目
书写 docker-compose.yml 文件
version: '1'
services:
blog:
container_name: blog-container
build:
context: ./blog
dockerfile: Dockerfile
image: node
ports:
- '3000:3000'
bot:
container_name: bot-container
build:
context: ./bot
dockerfile: Dockerfile
image: bot:v2
ports:
- '3002:3002'
终端输入
docker-compose up
Docker 中使用 Mongo
参考 https://www.minglunwu.com/notes/2021/mongodb_plus_express.html
建立 Network
# docker network create -d <模式> <名稱>
docker network create -d bridge mongo-network # 建立 Docker Network
docker network ls # 顯示所有的Docker Network
RUN
docker run --name mongodb \ # 將這個Container命名為 mongodb
-e MONGO_INITDB_ROOT_USERNAME=<USERNAME> \ # 設定環境變數
-e MONGO_INITDB_ROOT_PASSWORD=<PASSWORD> \ # 設定環境變數
-v /Users/wo/开发者应用/mongodb:/data/db \ # 設定Volume
--network mongo-network \ # 在Step1. 設定的Docker Network
-p 27017:27017 # Port Forwarding
-d \ # 使整個Container在背景運行
mongo:latest # 此Container要使用的Docker Image
docker run --name mongo_express \ # 將 Container 命名為 mongo_express
--network mongo-network \ # 設定 Docker network為 mongo-network (與MongoDB同一個)
-e ME_CONFIG_MONGODB_SERVER=mongodb \ # 環境變數
-e ME_CONFIG_MONGODB_ADMINUSERNAME=<USERNAME> \ # 環境變數
-e ME_CONFIG_MONGODB_ADMINPASSWORD=<PASSWORD> \ # 環境變數
-e ME_CONFIG_BASICAUTH_USERNAME=<USERNAME> \ # 環境變數
-e ME_CONFIG_BASICAUTH_PASSWORD=<PASSWORD> \ # 環境變數
-p 8081:8081 \ # Port Forwarding
-d \ # 使Container在背景運行
mongo-express:latest # 此 Container 要使用的 Docker Image