docker 常用命令
容器生命周期管理
运行容器
docker run -it ubuntu:18.04 bash
docker run --name my_container image_name
docker run -d --name my_container image_name
docker run --rm -it image_name
docker run -v /host/path:/container/path image_name
docker run -p 8080:80 image_name
docker run --privileged image_name
启动/停止容器
docker start container_name
docker stop container_name
docker restart container_name
docker pause container_name
docker unpause container_name
进入容器
docker exec -it container_name bash
docker exec -it --user root container_name bash
docker exec container_name ls -la
镜像管理
查看镜像
docker images
docker image ls
docker history image_name
拉取/推送镜像
docker pull ubuntu:18.04
docker push username/image_name:tag
docker load -i image.tar
docker save -o image.tar image_name
删除镜像
docker rmi image_name
docker rmi -f image_name
docker rmi -f $(docker images -aq)
docker image prune
查看信息
docker ps
docker ps -a
docker ps -l
docker inspect container_name
docker logs container_name
docker logs -f container_name
查看系统信息
docker system df
docker system df -v
docker version
docker info
构建镜像
Dockerfile 构建
docker build -t my_image .
docker build --no-cache -t my_image .
docker build -f Dockerfile.dev -t my_image .
从容器创建镜像
docker commit container_name new_image_name
docker export container_name > container.tar
docker import container.tar image_name
数据管理
卷管理
docker volume create my_volume
docker volume ls
docker volume rm my_volume
docker volume prune
挂载目录
docker run -v /host/path:/container/path image_name
docker run -v volume_name:/container/path image_name
docker run -v /host/path:/container/path:ro image_name
网络管理
网络操作
docker network ls
docker network create my_network
docker network inspect my_network
docker network connect network_name container_name
docker network disconnect network_name container_name
清理和维护
系统清理
docker container prune
docker system prune
docker system prune -a --volumes
docker builder prune
资源限制
docker run -m 512m image_name
docker run --cpus 1.5 image_name
docker run -m 512m --cpus 1.0 image_name
实用技巧和组合命令
开发环境常用组合
docker run -it \--name dev_env \--privileged \-v $(pwd):/workspace \-w /workspace \dev_image:latest
docker start dev_env && docker exec -it dev_env bash
快速清理
docker stop $(docker ps -aq) 2>/dev/null; docker rm $(docker ps -aq) 2>/dev/null
docker rmi -f $(docker images -aq) 2>/dev/null
docker system prune -a -f --volumes
信息查询
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name
docker stats container_name
docker port container_name
日常使用流程示例
典型开发工作流
docker run -it --name mydev -v $(pwd):/workspace -w /workspace dev_image
docker start mydev
docker exec -it mydev bash
docker commit mydev mydev_with_tools:latest
docker stop mydev
docker rm mydev
镜像分发流程
docker save my_image | gzip > my_image.tar.gz
docker load -i my_image.tar.gz
docker run -it my_image
重点记住的常用命令
docker ps -a
docker images
docker run -it image_name bash
docker exec -it container_name bash
docker start container_name
docker stop container_name
docker rm container_name
docker rmi image_name
docker build -t my_image .
docker logs container_name