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 上下载镜像 如果不输入版本默认是最新版本
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 --help | docker的帮助命令,可以查看到相关的其他命令 |
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 | 镜像大小 |
| 参数 | 说明 |
|---|---|
| -a | 列出本地所有的镜像 |
| -q | 只显示镜像ID |
| --digests | 显示镜像的摘要信息 |
| --no-trunc | 显示完整的镜像信息 |
3.2.2 docker search
docker hub是Docker的在线仓库,我们可以通过docker search 在上面搜索我们需要的镜像
| 参数名称 | 描述 |
|---|---|
| --no-trunc | 显示完整的描述信息 |
| --limit | 分页显示 |
| -f | 过滤条件 docker search -f STARS=5 tomcat |
3.2.3 Docker pull
从Docker hub 上下载镜像文件,已有相同的镜像文件则更新
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 退出容器
3.3.2 列举运行的容器
我们要查看当前正在运行的容器有哪些,可以通过ps 命令来查看
docker ps [OPTIONS]
OPTONS可用的参数
| OPTIONS | 说明 |
|---|---|
| -a | 列出当前所有正在运行的容器+历史上运行过的 |
| -l | 显示最近创建的容器。 |
| -n | 显示最近n个创建的容器。 |
| -q | 静默模式,只显示容器编号。 |
| --no-trunc | 不截断输出。 |
3.3.3 退出容器命令
我们启动了一个容器后,如何退出容器
| 退出方式 | 说明 |
|---|---|
| exit | 容器停止退出 |
| ctrl+p+q | 容器不停止退出 |
3.3.4 停止容器
docker stop 容器ID或者名称
还可以通过强制停止方式处理
docker kill 容器ID或者名称
3.3.5 删除容器
有时候容器使用完成就没有作用了,我们想要删除掉容器,这时可以通过rm命令
docker rm 容器ID
docker rm -f $(docker ps -qa)
docker ps -a -q | xargs docker rm