电脑工具容器工具如何创建运行应用容器

联启 电脑工具 2

本文目录导读:

电脑工具容器工具如何创建运行应用容器-第1张图片-电脑手机工具软件下载 - 免费实用工具合集 | 联启科技

  1. 创建运行容器的基本流程
  2. 常用的容器工具
  3. 实战示例:创建完整应用
  4. 容器管理命令
  5. 最佳实践

我来详细讲解如何创建和运行应用容器,这里以Docker为例,这是最流行的容器工具。

创建运行容器的基本流程

编写 Dockerfile

# 基础镜像
FROM node:18-alpine
# 设置工作目录
WORKDIR /app
# 复制依赖文件
COPY package*.json ./
# 安装依赖
RUN npm install
# 复制源代码
COPY . .
# 暴露端口
EXPOSE 3000
# 启动命令
CMD ["npm", "start"]

构建镜像

# 基本构建
docker build -t my-app:1.0 .
# 带标签构建
docker build -t my-app:latest .
# 使用缓存构建
docker build --cache-from my-app:latest -t my-app:1.0 .

运行容器

# 基本运行
docker run my-app:1.0
# 后台运行
docker run -d my-app:1.0
# 端口映射
docker run -d -p 3000:3000 my-app:1.0
# 命名容器
docker run -d --name my-container -p 3000:3000 my-app:1.0

常用的容器工具

Docker Desktop

安装 Docker Desktop

  • Windows/Mac: 从 docker.com 下载
  • Linux: sudo apt-get install docker-ce docker-ce-cli containerd.io

常用命令示例

# 下载镜像
docker pull nginx:latest
docker pull mysql:8.0
# 运行 MySQL 容器
docker run -d \
  --name mysql8 \
  -e MYSQL_ROOT_PASSWORD=root123 \
  -e MYSQL_DATABASE=testdb \
  -p 3306:3306 \
  mysql:8.0
# 运行 Nginx 容器
docker run -d \
  --name nginx-web \
  -p 80:80 \
  -v /path/to/html:/usr/share/nginx/html \
  nginx:latest

Docker Compose(多容器应用)

docker-compose.yml 示例

version: '3.8'
services:
  # Web 应用
  web:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DB_HOST=mysql
      - DB_USER=root
      - DB_PASSWORD=root123
    depends_on:
      - mysql
    volumes:
      - .:/app
  # 数据库
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: root123
      MYSQL_DATABASE: testdb
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql
  # Redis 缓存
  redis:
    image: redis:alpine
    ports:
      - "6379:6379"
volumes:
  mysql_data:

启动多容器应用

# 启动所有服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
# 重新构建并启动
docker-compose up -d --build

Podman(Docker的替代方案)

# 安装 Podman
# Mac: brew install podman
# Linux: dnf install podman / apt install podman
# 创建容器
podman run -d --name web-app -p 8080:80 nginx:latest
# 构建镜像
podman build -t my-app .
# 和 Docker 命令基本一致
podman ps
podman images
podman stop containername

Containerd(轻量级容器运行时)

# 使用 ctr 命令(containerd 的客户端)
ctr images pull docker.io/library/nginx:latest
ctr run docker.io/library/nginx:latest nginx-server
# 使用 nerdctl(更友好的命令)
nerdctl run -d -p 80:80 --name webserver nginx:latest

实战示例:创建完整应用

Python Flask 应用

app.py

from flask import Flask
import os
app = Flask(__name__)
@app.route('/')
def hello():
    return "Hello from Docker Container!"
if __name__ == '__main__':
    port = int(os.environ.get('PORT', 5000))
    app.run(host='0.0.0.0', port=port)

Dockerfile

FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
ENV PORT=5000
EXPOSE 5000
CMD ["python", "app.py"]

requirements.txt

flask==2.0.1

构建和运行

# 构建
docker build -t flask-app:1.0 .
# 运行
docker run -d \
  --name my-flask-app \
  -p 5000:5000 \
  -e PORT=5000 \
  flask-app:1.0
# 测试
curl http://localhost:5000

容器管理命令

生命周期管理

# 查看运行中的容器
docker ps
# 查看所有容器(包括停止的)
docker ps -a
# 停止容器
docker stop container_id
# 启动已停止的容器
docker start container_id
# 重启容器
docker restart container_id
# 删除容器
docker rm container_id
# 强制删除运行中的容器
docker rm -f container_id

日志和调试

# 查看日志
docker logs container_id
# 实时查看日志
docker logs -f container_id
# 进入容器内部
docker exec -it container_id /bin/bash
# 查看容器详细信息
docker inspect container_id
# 查看资源使用
docker stats

数据持久化

# 创建数据卷
docker volume create mydata
# 挂载数据卷
docker run -d \
  --name web-app \
  -v mydata:/app/data \
  -p 3000:3000 \
  my-app:1.0
# 挂载本地目录
docker run -d \
  -v /host/path:/container/path \
  my-app:1.0

最佳实践

容器优化

# 多阶段构建
# 构建阶段
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# 运行阶段
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
EXPOSE 80

安全建议

# 使用非root用户运行
docker run -u 1000:1000 my-app:1.0
# 限制资源
docker run \
  --memory="512m" \
  --cpus="1.0" \
  my-app:1.0
# 只读文件系统
docker run --read-only my-app:1.0

网络配置

# 创建网络
docker network create mynetwork
# 在指定网络运行容器
docker run --network mynetwork --name web my-app:1.0
# 连接到已有容器网络
docker run --network container:web nginx:latest

这些是创建和运行容器的主要方法,根据你的具体需求选择合适的工具和配置即可。

标签: Docker容器 容器化部署

抱歉,评论功能暂时关闭!