启动命令

  • 启动 docker:systemctl start docker
  • 停止 docker:systemctl stop docker
  • 重启 docker:systemctl restart docker
  • 开机启动 docker:systemctl enable docker
  • 查看 docker 状态:systemctl status docker
  • 查看 docker 概要信息:docker info
  • 查看 docker 帮助文档:docker --help


镜像命令

name 表示镜像的名字、nameId:镜像ID、Tag:具体版本号

  • 列出本地主机上的镜像:docker images
  • 搜索远程仓库的某个镜像:docker search name
  • 拉取某个镜像:docker pull name[:Tag]
  • 查看镜像、容器、数据卷所占的空间:docker system df
  • 删除[强制]镜像:docker rmi [-f] nameId
  • 提交新的镜像:docker commit -m="提交的描述信息" -a="作者" 容器ID 创建的目标镜像名:[标签名]


容器命令

  • images: 表示镜像名称、ID:表示容器ID、name:表示容器名字

docker 容器

  • 查看正在运行[历史]的 docker 容器:docker ps [-a]

  • 运行 docker 容器:docker run [options] images

    options:

    1. --name=: 为容器指定一个名字
    2. -d:后台运行容器并返回容器ID
    3. -it:启动交互式容器(前台有伪终端、等待交互) alt
    4. -p:指定端口映射 [6739:6739 主机端口:容器实例端口]
    5. -P:随机端口映射
  • 启动已经停止运行的容器:docker start ID/name

  • 重启容器:docker restart ID/name

  • 停止容器: docker stop ID/name

  • 强制停止容器:docker kill ID/name

  • 删除[强制]容器:docker rm [-f] ID/name

  • 退出容器:

    1. exit:在容器中 exit退出,容器停止
    2. ctrl + p + q:在容器中,ctrl + p + q退出,容器不会停止
  • 进入容器:

    1. docker exec -it[-d] ID bash: 重新进入交互式容器、后台运行容器(常用)

    2. docker attach ID bash

    3. attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出会导致容器停止;而exec是在容器中打开新的终端,并且可以启动新的进程用exit退出不会导致容器的停止


docker 容器内

  • 查看容器内日志:docker logs ID
  • 查看容器内运行的进程:docker top ID
  • 查看容器内部细节:docker inspect ID
  • 从容器内拷贝文件到主机上:docker cp ID:容器内路径 目的主机路径
  • 从tar包中的内容创建一个新的文件系统再导入为镜像:cat 文件名.tar | docker import - 镜像用户/镜像名: 镜像版本号
  • 导出容器内容留作为一个tar归档文件:docker export ID > 文件名.tar

问题

  1. docker run -d Ubuntu;由于 docker机制,容器后台运行,必须要有一个前台进程,否则就会自动退出。所以一般使用 Ubuntu 则使用交互式容器 docker run -it ubuntu;
  2. 使用 redis 则直接 docker run -d redis 就可以