Docker是一种容器化平台,允许您将应用程序及其依赖项打包到标准化单元中,实现快速部署和扩展。
# 在Ubuntu上安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker
# 验证安装
docker --version
docker run hello-world
# 运行Nginx容器
docker run -d -p 80:80 --name my-nginx nginx
# 运行MySQL容器
docker run -d -p 3306:3306 --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql
FROM python:3.8-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
docker build -t my-python-app .
docker run -d -p 5000:5000 --name my-app my-python-app
# 使用docker-compose scale命令
docker-compose up -d --scale web=5
# 或者手动启动多个实例
docker run -d -p 8081:80 --name web1 nginx
docker run -d -p 8082:80 --name web2 nginx
# 初始化Swarm
docker swarm init
# 添加工作节点
docker swarm join --token <token> <manager-ip>:2377
# 部署服务
docker service create --replicas 3 -p 80:80 --name web nginx
# 扩展服务
docker service scale web=5
# 部署应用到Kubernetes
kubectl create deployment my-app --image=my-python-app
# 扩展部署
kubectl scale deployment my-app --replicas=5
# 暴露服务
kubectl expose deployment my-app --type=LoadBalancer --port=80
docker stats
docker logs -f container_name
docker volume create my-volume
docker run -d -v my-volume:/data --name db mysql
docker network create my-network
docker run -d --network=my-network --name app1 my-app
docker run -d --network=my-network --name app2 my-app
docker run -d --restart unless-stopped --name resilient-app my-app
.dockerignore
文件排除不必要的文件通过Docker,您可以实现快速部署、轻松扩展和高效管理服务器应用,大大提高IT基础设施的灵活性和可靠性。