首先确保已在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
假设您有一个简单的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');
});
在应用根目录下创建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"]
docker build -t my-node-app .
docker run -d -p 3000:3000 --name my-running-app my-node-app
curl http://localhost:3000
# 应该返回 "Hello from Docker container!"
docker ps
docker ps -a
docker stop <container-id>
docker start <container-id>
docker exec -it <container-id> /bin/sh
docker logs <container-id>
docker rm <container-id>
docker rmi <image-id>
创建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配置。