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 pull [镜像名称]:[标签]
# 运行容器
docker run -d --name [容器名] -p [主机端口]:[容器端口] [镜像名称]
# 查看运行中的容器
docker ps
# 查看所有容器(包括停止的)
docker ps -a
# 停止容器
docker stop [容器ID/名称]
# 启动已停止的容器
docker start [容器ID/名称]
# 删除容器
docker rm [容器ID/名称]
# 查看镜像
docker images
# 删除镜像
docker rmi [镜像ID/名称]
docker run -d --name my-nginx -p 80:80 nginx
docker run -d --name my-mysql -e MYSQL_ROOT_PASSWORD=yourpassword -p 3306:3306 mysql:5.7
# 先创建自定义网络
docker network create wordpress-net
# 运行MySQL容器
docker run -d --name wordpress-db --net wordpress-net -e MYSQL_ROOT_PASSWORD=dbpass -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=wordpress mysql:5.7
# 运行WordPress容器
docker run -d --name wordpress --net wordpress-net -p 8080:80 -e WORDPRESS_DB_HOST=wordpress-db -e WORDPRESS_DB_USER=wordpress -e WORDPRESS_DB_PASSWORD=wordpress -e WORDPRESS_DB_NAME=wordpress wordpress
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
networks:
- mynet
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql
networks:
- mynet
volumes:
db_data:
networks:
mynet:
docker-compose up -d
# 使用Docker Compose扩展服务实例
docker-compose up -d --scale web=3
# 初始化Swarm
docker swarm init
# 添加工作节点(在其他服务器上运行)
docker swarm join --token [token] [manager-ip]:2377
# 部署服务
docker service create --name my-web --replicas 3 -p 80:80 nginx
# 扩展服务
docker service scale my-web=5
# 使用kubectl扩展部署
kubectl scale deployment my-deployment --replicas=5
netstat -tuln | grep [端口]
docker logs [容器ID]
docker system prune
sudo ufw status
通过Docker,您可以实现服务器的快速部署和灵活扩展,大大提高了运维效率和系统可靠性。