插件窝 干货文章 Linux下的Docker:如何使用容器化部署应用程序?

Linux下的Docker:如何使用容器化部署应用程序?

Docker 容器 app container 758    来源:    2025-04-14

Linux下使用Docker容器化部署应用程序指南

1. 安装Docker

首先确保已在Linux系统上安装Docker:

# 对于Ubuntu/Debian系统
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 对于CentOS/RHEL系统
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io

# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装
docker --version
sudo docker run hello-world

2. 准备应用程序

假设您有一个简单的Node.js应用:

// app.js
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello from Docker container!');
});

app.listen(3000, () => {
  console.log('App listening on port 3000');
});

3. 创建Dockerfile

在应用根目录下创建Dockerfile

# 使用官方Node.js镜像作为基础
FROM node:14-alpine

# 设置工作目录
WORKDIR /usr/src/app

# 复制package.json和package-lock.json
COPY package*.json ./

# 安装依赖
RUN npm install

# 复制应用源代码
COPY . .

# 暴露应用端口
EXPOSE 3000

# 定义启动命令
CMD ["node", "app.js"]

4. 构建Docker镜像

docker build -t my-node-app .

5. 运行容器

docker run -d -p 3000:3000 --name my-running-app my-node-app

6. 验证应用运行

curl http://localhost:3000
# 应该返回 "Hello from Docker container!"

7. 常用Docker命令

  • 查看运行中的容器:docker ps
  • 查看所有容器:docker ps -a
  • 停止容器:docker stop <container-id>
  • 启动已停止的容器:docker start <container-id>
  • 进入容器shell:docker exec -it <container-id> /bin/sh
  • 查看容器日志:docker logs <container-id>
  • 删除容器:docker rm <container-id>
  • 删除镜像:docker rmi <image-id>

8. 高级部署选项

使用Docker Compose

创建docker-compose.yml文件:

version: '3'
services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules

运行:

docker-compose up -d

持久化数据

docker run -d -p 3000:3000 -v /path/on/host:/path/in/container --name my-app my-node-app

网络配置

# 创建自定义网络
docker network create my-network

# 运行容器并加入网络
docker run -d --network my-network --name my-app my-node-app

通过以上步骤,您已经成功在Linux系统上使用Docker容器化部署了应用程序。根据您的具体应用需求,可以进一步调整Docker配置。