下面按从零开始的思路,给你一份在 CentOS 上使用 Docker 部署应用的实用指南(以 CentOS 7/8 为例,适用于大多数场景)。
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
docker version
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.m.daocloud.io"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo usermod -aG docker $USER
重新登录后生效
docker pull nginx
docker run -d --name my-nginx -p 80:80 nginx
浏览器访问:
http://服务器IP
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
验证:
docker-compose version
version: "3"
services:
web:
image: nginx
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
docker-compose up -d
FROM node:18
WORKDIR /app
COPY . .
RUN npm install
EXPOSE 3000
CMD ["node", "app.js"]
构建并运行:
docker build -t my-app .
docker run -d -p 3000:3000 my-app
docker ps # 查看运行容器
docker ps -a # 查看所有容器
docker images # 查看镜像
docker logs 容器名 # 查看日志
docker stop 容器名
docker rm 容器名
docker rmi 镜像名
✅ 防火墙
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
✅ SELinux(如遇权限问题)
sudo setenforce 0
如果你愿意,可以告诉我:
我可以给你针对性的部署方案 + 示例配置。