Docker的组成和基本操作

178 阅读3分钟

1. Docker的基本组成

1.1 镜像(image)

Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

docker面向对象
容器对象
镜像

1.2 容器(container)

Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

1.3 仓库(repository)

仓库(Repository)是集中存放镜像文件的场所。
仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
最大的公开仓库是 Docker Hub(hub.docker.com/) , 存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云 等

1.4 总结

image 文件生成的容器实例,本身也是一个文件,称为镜像文件。
一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器
至于仓储,就是放了一堆镜像的地方,我们可以把镜像发布到仓储中,需要的时候从仓储中拉下来就可。

hello-world案例演示:

利用 docker pull hello-world 命令来从docker hub 上下载镜像 如果不输入版本默认是最新版本

1665642735855.png

2.Docker镜像服务

按照官网的顺序即可

1. 安装/升级Docker客户端

推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce

2. 配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://121qzz1l.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3.Docker的常用命令

3.1 帮助命令

命令说明
docker version查看docker的版本信息
docker info查看docker详细的信息
docker --helpdocker的帮助命令,可以查看到相关的其他命令

3.2 镜像命令

镜像命令说明
docker images列出本地主机上的镜像
docker search 镜像名称从 docker hub 上搜索镜像
docker pull 镜像名称从docker hub 上下载镜像
docker rmi 镜像名称删除本地镜像

3.2.1 docker images

镜像表格信息说明

选项说明
REPOSITORY表示镜像的仓库源
TAG镜像的标签
IMAGE ID镜像ID
CREATED镜像创建时间
SIZE镜像大小

1665643382526.png

参数说明
-a列出本地所有的镜像
-q只显示镜像ID
--digests显示镜像的摘要信息
--no-trunc显示完整的镜像信息

3.2.2 docker search

     docker hub是Docker的在线仓库,我们可以通过docker search 在上面搜索我们需要的镜像

image.png

参数名称描述
--no-trunc显示完整的描述信息
--limit分页显示
-f过滤条件  docker search -f STARS=5 tomcat

3.2.3 Docker pull

    从Docker hub 上下载镜像文件,已有相同的镜像文件则更新

image.png

3.2.4 Docker rmi

-f 表示强制删除

删除方式命令
删除单个docker rmi -f 镜像ID
删除多个docker rmi -f 镜像1:TAG 镜像2:TAG
删除全部docker rmi -f $(docker images -qa)

3.3 容器命令

有镜像才能创建容器。

3.3.1 创建并启动容器

创建并启动一个容器的命令

docker run [OPTIONS] IMAGE [COMMAND]

OPTIONS中的一些参数

options说明
--name"容器新名字": 为容器指定一个名称
-d后台运行容器,并返回容器ID,也即启动守护式容器
-i以交互模式运行容器,通常与 -t 同时使用
-t为容器重新分配一个伪输入终端,通常与 -i 同时使用
-P:随机端口映射
-p指定端口映射,有以下四种格式 ip:hostPort:containerPort ip::containerPort hostPort:containerPortcontainerPort

交互式的容器

docker run -it centos /bin/bash

此时已经进入创建的容器中,按ctrl+P+Q 退出容器

1665643968942.png

3.3.2 列举运行的容器

    我们要查看当前正在运行的容器有哪些,可以通过ps 命令来查看

docker ps [OPTIONS]

image.png

OPTONS可用的参数

OPTIONS说明
-a列出当前所有正在运行的容器+历史上运行过的
-l显示最近创建的容器。
-n显示最近n个创建的容器。
-q静默模式,只显示容器编号。
--no-trunc不截断输出。

3.3.3 退出容器命令

    我们启动了一个容器后,如何退出容器

退出方式说明
exit容器停止退出
ctrl+p+q容器不停止退出

3.3.4 停止容器

docker stop 容器ID或者名称

1665644229577.png

还可以通过强制停止方式处理

docker kill 容器ID或者名称

3.3.5 删除容器

     有时候容器使用完成就没有作用了,我们想要删除掉容器,这时可以通过rm命令

1665644295462.png

docker rm 容器ID
docker rm -f $(docker ps -qa)
docker ps -a -q | xargs docker rm