跳到主要内容

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
网站备案:蜀ICP备2023001425号👏 Powered By Docusaurus, Semi Design