简介

  • docker 创建的所有虚拟实例公用一个linux内核,对硬件占用较小,属于轻量级虚拟机

开机启动、运行、停止和重启

  • 开机启动

    1. sudo systemctl enable docker
  • 运行

    1. sudo systemctl start docker
  • 停止

    1. sudo systemctl stop docker
  • 重启

    1. sudo systemctl restart docker

一张图

image.png

使用

查询

docker search xxx

拉取

  • NAME 是列表中所需的镜像

    docker pull NAME

导入导出镜像

  • 导出

    docker save -o docker.io/openjdk > /home/openjdk.tar.gz

  • 查看镜像

    docker images

  • 删除镜像

    docker rmi docker.io/openjdk

  • 导入镜像

    docker load < /home/openjdk.tar.gz

修改镜像名

docker tag OLD_NAME NEW_NAME

  • 其实 image 多了一份,原来的 image 还在

容器

创建容器

docker run -it —name myjdk -p : -v : —privileged bash

  • run: 创建一个实例
  • -it: 前台交汇
  • --name=myjdk: 给该实例指定一个名称
  • -p <host_computer_port>:<docker_instance_port>: 映射端口(宿主机端口: docker实例端口)
    • 可多个
  • -v <host_computer_dir_or_file>:<docker_instance_dir_or_file>: 数据卷/目录的映射(宿主机数据卷/目录: docker实例目录[后者会自动创建])
    • 宿主机一般挂载数据卷比较好
    • 可多个
  • <docker_images_name/tag> : 镜像名称或者标签
  • -privileged 给 docker 容器权限以读取宿主机的目录/文件
  • bash: 启动后内容程序是哪种方式,这里 bash

稍后会进入实例, exit 可以退出实例,进入 stop 状态

暂停和停止容器

  • myjdk 是 实例名称,如果没有设置,则根据实例 id

    docker pause myjdk docker unpause myjdk docker stop myjdk docker start myjdk # 重新启动 stop 的实例 docker start -i myjdk # 重新启动 stop 的实例,且进入交互式

  • 查看实例的进程

    docker ps -a

进入容器

docker attach 容器ID

docker exec -it 容器ID /bin/bash

离开容器

  • 在容器中键入 exit
    • 如果是 -d 运行的容器,容器不会退出
    • 如果是 -i 运行的容器,容器会退出
  • 键入 ctrl+p+q 可以保持容器后台运行