【devops】Docker&Compose

66 阅读1分钟

Dokcer网络指令

查看指令 : docker network ls

新增指令 : docker network create network-name

新建容器时使用网络: docekr run -d -p xx:xx --name xxx --net network-name xxx:least

标识作用
-p端口映射关系(宿主机端口:容器内部端口)
-d分离模式(运行至后台)
--name容器名称
--net内部网络名
xxx容器名称
:least版本

Docker compose

version: '3'
services:
    xxx:  【name】
        image: 【image】
        ports:
            - xxx:xxx
        environment:
            - xxxxx = xxxx
   xxx2:
       ......
       
   restart: always 【重启策略】

构建容器[Docker File]

模拟外部构建环境的指令

# 多阶段构建示例
FROM node:14 AS builder
WORKDIR /build
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:alpine
COPY --from=builder /build/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

# 常用的 Python 应用示例
FROM python:3.9-slim

LABEL maintainer="your-email@example.com"
LABEL version="1.0"

ENV PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1 \
    TZ=Asia/Shanghai \
    APP_HOME=/app

WORKDIR ${APP_HOME}

# 安装系统依赖
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        gcc \
        python3-dev \
        netcat \
    && rm -rf /var/lib/apt/lists/*

# 安装 Python 依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 复制应用代码
COPY . .

# 创建非 root 用户
RUN groupadd -r app && \
    useradd -r -g app app && \
    chown -R app:app ${APP_HOME}

USER app

EXPOSE 8000

CMD ["gunicorn", "--bind", "0.0.0.0:8000", "app:app"]

打包

docekr build -t [name]:[version]