基本上常用的就这些,遇到问题先google,别动不动就删容器重来。记住:先查日志,再看配置,最后才重启。
1. 镜像相关
1.1 拉镜像
1 2 3 4 5
| docker pull nginx
docker pull nginx:1.24-alpine
|
1.2 查看本地镜像
1 2 3 4
| docker images
docker images -q
|
1.3 删镜像
1 2 3 4 5 6 7 8
| docker rmi nginx:latest
docker rmi $(docker images -q)
docker images | grep none
|
1.4 构建镜像
1 2 3 4 5 6 7 8
| docker build -t myapp:v1 .
docker build -f /path/to/Dockerfile -t myapp:v1 .
docker build --no-cache -t myapp:v1 .
|
2. 容器操作
2.1 启动容器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| docker run nginx
docker run -d -p 8080:80 --name my-nginx nginx
docker run -d \ -p 3306:3306 \ -v /data/mysql:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=opsnot123 \ --name mysql8 \ mysql:8.0
docker run -d \ --memory="512m" \ --cpus="0.5" \ -p 8080:80 \ nginx
|
2.2 查看容器
1 2 3 4 5 6 7 8 9 10 11
| docker ps
docker ps -a
docker ps -q
docker ps -n 5
|
2.3 停止/启动/重启
1 2 3 4 5 6 7 8 9 10 11
| docker stop my-nginx
docker kill my-nginx
docker start my-nginx
docker restart my-nginx
|
2.4 删容器
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| docker rm my-nginx
docker rm -f my-nginx
docker rm $(docker ps -aq -f status=exited)
docker rm `docker ps -qa`
docker ps -a | grep Exited
|
2.5 进容器调试
1 2 3 4 5 6 7 8 9 10 11
| docker exec -it my-nginx bash
docker exec -it my-nginx sh
docker exec my-nginx ls /etc/nginx
docker exec -u root -it my-nginx bash
|
3. 日志相关
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| docker logs my-nginx
docker logs -f my-nginx
docker logs --tail 100 my-nginx
docker logs -t my-nginx
docker logs -f --tail 200 my-nginx
|
4. 数据卷操作
4.1 创建和查看
1 2 3 4 5 6 7 8
| docker volume create my-data
docker volume ls
docker volume inspect my-data
|
4.2 删除数据卷
1 2 3 4 5
| docker volume rm my-data
docker volume prune
|
5. 网络相关
5.1 查看网络
1 2 3 4 5
| docker network ls
docker network inspect my-network
|
5.2 管理网络
1 2 3 4 5 6 7 8
| docker network create my-network
docker network connect my-network my-nginx
docker network disconnect my-network my-nginx
|
6. 清理命令
6.1 分类清理
1 2 3 4 5 6 7 8 9 10 11
| docker container prune
docker image prune
docker volume prune
docker network prune
|
6.2 一键清理
1 2 3 4 5
| docker system prune -a
docker system df
|
7. 容器资源查看
7.1 实时监控
1 2 3 4 5
| docker stats
docker stats my-nginx
|
7.2 详细信息
1 2 3 4 5
| docker inspect my-nginx
docker top my-nginx
|
8. 导入导出
8.1 镜像导入导出
1 2 3 4 5
| docker save -o nginx.tar nginx:latest
docker load -i nginx.tar
|
8.2 容器导入导出
1 2 3 4 5
| docker export my-nginx > nginx-container.tar
docker import nginx-container.tar my-nginx:v1
|
9. Docker Compose常用
9.1 基础操作
1 2 3 4 5 6 7 8
| docker-compose up -d
docker-compose down
docker-compose ps
|
9.2 日志和重启
1 2 3 4 5 6 7 8 9 10 11
| docker-compose logs -f
docker-compose restart
docker-compose restart nginx
docker-compose up -d --build
|
10. 实用技巧
10.1 快速清理脚本
1 2 3 4 5 6 7 8 9 10 11 12 13
| #!/bin/bash
echo "停止所有容器..." docker stop $(docker ps -q)
echo "删除所有容器..." docker rm $(docker ps -aq)
echo "清理未使用的镜像..." docker image prune -a -f
echo "清理完成!" docker system df
|
10.2 查看容器IP
1
| docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my-nginx
|
10.3 复制文件
1 2 3 4 5
| docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf
docker cp ./nginx.conf my-nginx:/etc/nginx/nginx.conf
|
10.4 限制日志大小
1 2 3 4 5
| docker run -d \ --log-opt max-size=10m \ --log-opt max-file=3 \ nginx
|
11. 排错命令
11.1 日志排查
1 2 3 4 5
| docker logs container_name
docker ps -a | grep container_name
|
11.2 网络和端口
1 2 3 4 5
| docker port container_name
docker exec -it container_name bash
|
11.3 系统信息
1 2 3 4 5
| docker version
docker info
|
本文来自 opsnot.com。