- Published on
linux配置
- Authors

- Name
- 李丹秋
常用命令
单容器
- docker ps -a 查看所有容器
- docker images 查看所有镜像
- docker run -d -p 80:80 --name nginx nginx 启动容器
- docker stop nginx 停止容器
- docker rm nginx 删除容器
- docker rmi nginx 删除镜像
- docker pull nginx 拉取镜像
- docker push nginx 推送镜像
- docker exec -it nginx bash 进入容器
- docker logs nginx 查看容器日志
- docker build -t fe-container:first .
容器组
- docker-compose up 启动容器组
- docker-compose down 停止容器组
- docker-compose ps 查看容器组状态
- docker-compose logs 查看容器组日志
- docker-compose exec nginx bash 进入容器组中的容器
- docker-compose build 构建容器组
- docker-compose up -d --build 重新构建容器组
- docker-compose down --rmi all 删除容器组和镜像
修改docker源
修改docker源为阿里云镜像源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
sudo systemctl daemon-reload // 重新加载配置
sudo systemctl restart docker // 重启docker
docker常用命令
部署前端项目
# build stage
FROM node:18 as build-stage ## 构建阶段 下载node镜像
WORKDIR /app ## 设置工作目录
COPY package.json ./ ## 复制package.json到工作目录
RUN npm config set registry https://registry.npmmirror.com/ ## 设置npm镜像源
RUN npm install ## 安装依赖包
COPY . . ## 复制项目到工作目录
RUN npm run build ## 构建项目
# production stage
FROM nginx:stable as production-stage ## 生产阶段 下载nginx镜像
COPY --from=build-stage /app/dist /usr/share/nginx/html ## 复制构建后的项目到nginx的默认目录
COPY --from=build-stage /app/nginx.conf /etc/nginx/conf.d/default.conf ## 复制nginx配置文件
EXPOSE 80 ## 暴露端口
CMD ["nginx", "-g", "daemon off;"] ## 启动nginx
nginx配置
upstream nest-server {
server nest-app:3005;
}
server {
listen 80;
listen [::]:80;
server_name localhost;
location ^~ /api {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://nest-server;
}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
部署后端项目
Dockerfile
FROM node:20-alpine as build-stage
WORKDIR /app
COPY package.json .
RUN npm config set registry https://registry.npmmirror.com/
RUN npm install pnpm -g
RUN pnpm install
COPY . .
RUN pnpm run build
# production stage
FROM node:20-alpine as production-stage
COPY --from=build-stage /app/dist /app
COPY --from=build-stage /app/package.json /app/package.json
WORKDIR /app
RUN npm config set registry https://registry.npmmirror.com/
RUN npm install pnpm -g
RUN pnpm install --production
EXPOSE 3005
CMD ["node", "/app/main.js"]
docker compose
version: '3.8'
services:
fe-app:
image: fe-container:first
ports:
- 80:80
depends_on:
- nest-app
networks:
- common-network
nest-app:
build:
context: ./
dockerfile: ./Dockerfile
depends_on:
- mysql-container
- redis-container
networks:
- common-network
mysql-container:
image: mysql
ports:
- 3306:3306
- 33060:33060
volumes:
- /Users/muse/Desktop/docker-volume/mysql-test:/var/lib/mysql
environment:
MYSQL_DATABASE: meeting_room_booking_system
MYSQL_ROOT_PASSWORD: lidanqiu123
networks:
- common-network
redis-container:
image: redis
volumes:
- /Users/muse/Desktop/docker-volume/mysql-test:/data
networks:
- common-network
networks:
common-network:
driver: bridge