Docker常见命令总结

305 阅读1分钟

镜像

  • 查看镜像 docker images
docker images

REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
ubuntu                latest              4e2eef94cd6b        5 days ago          73.9MB
openresty/openresty   1.13.6.2-alpine     ef57f6ca4202        14 months ago       49.1MB
  • 获取镜像 docker pull
sudo docker pull ubuntu
  • 获取详细信息 docker inspect + 镜像名或Id
docker inspect ubuntu
  • 删除镜像 docker rmi + 镜像名或Id
docker rmi ubuntu
  • 保存镜像 docker commit
docker commit -m "测试"  nginx
  • 命名镜像 docker tag
docker tag 1d538d7dd3b2 nginx1.0
  • 迁移镜像 docker save
docker save nginx1.0 > nginx1.0.tar
  • 批量迁移:
sudo docker save -o ./images.tar webapp:1.0 nginx:1.12 mysql:5.7
  • 导入镜像 docker load
sudo docker load < webapp-1.0.tar

容器

  • 创建容器 docker create
sudo docker create nginx:1.12
-- name 设置容器名
sudo docker create --name nginx nginx:1.12
  • 启动容器 docker start
sudo docker start nginx

docker run = docker create + docker start

sudo docker run --name nginx -d nginx:1.12
  • 查看容器列表 docker ps
docker ps 正在运行的容器
docker ps -all/-a 所有容器

  • 停止容器 docker stop
sudo docker stop nginx
  • 删除容器 docker rm
sudo docker rm nginx
sudo docker rm -f nginx 强制删除
  • 进入容器 docker exec
sudo docker exec -it nginx bash
  • 导出容器 docker export
sudo docker export -o ./nginx.tar nginx
  • 导入容器 docker import
sudo docker import nginx.tar nginx2

网络

  • 容器互联: --link
sudo docker run -d --name webapp --link mysql webapp
  • 暴露端口: --expose
sudo docker run -d --name mysql -e MYSQL_RANDOM_ROOT_PASSWORD=yes --expose 13306 --expose 23306 mysql:5.7
  • 创建网络: docker network create
sudo docker network create -d bridge individual

-d 网络驱动类型:bridge、host、overlay、maclan、none
  • 加入网络:--network
sudo docker run -d --name mysql -e MYSQL_RANDOM_ROOT_PASSWORD=yes --network individual mysql:5.7
  • 端口映射:-p/ -publish
// ip 是宿主操作系统的监听ip,host-port是宿主机端口,container-port是容器端口
-p <ip>:<host-port>:<container-port>

将容器的 80 端口映射到宿主操作系统的 8080 端口:

sudo docker run -d --name nginx -p 8080:80 -p 443:443 nginx:1.12

数据卷

  • 挂载 -v-volume
sudo docker run -d --name webapp -v /webapp/storage webapp:latest
  • 创建 docker volume create
sudo docker volume create appdata
  • 查看 docker volume ls
docker volume ls
DRIVER              VOLUME NAME
local               appdata
  • 删除 docker volume rmdocker volume prune(删除没有被容器引用的数据卷)
sudo docker volume rm appdata

或者

sudo docker rm -v webapp