1 容器操作
容器是独立运行的一个或一组应用,以及它们的运行态环境
容器的正常启动:docker run
- 基于镜像新建一个容器并启动,容器执行完命令后会自动终止(
exited
) - 常用参数1:
-t
选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上 - 常用参数2:
-i
则让容器的标准输入保持打开 - 常用参数3:
-d
则让容器以守护态运行,返回信息为容器id
进入启动中的容器:
docker attach
:进入容器,从这个 stdin 中 exit 会导致容器的停止docker exec -it
:进入容器,exit 不会导致容器的停止(更推荐)
容器的停止、启动与删除
docker container stop
:终止一个运行中的容器docker container start
:将一个已经终止(exited
)的容器启动运行docker container restart
:将一个运行态的容器终止,然后再重新启动docker container rm
:删除一个处于终止状态的容器(-f
参数,删除运行中的容器)docker container prune
:清理掉所有处于终止状态的容器
容器信息的查看:
docker container ls
:查看容器信息docker container ls -a
:查看容器信息(包含已终止的容器)docker container logs
:获取容器的日志/输出信息
其他容器常见操作:
docker export
:导出容器快照到本地文件docker import
: 从容器快照文件中再导入为镜像
相比于
docker save
导出的镜像文件,docker import
导出的容器快照文件会丢失所有的历史记录和元数据信息(即仅保存容器当时的快照状态),因此体积更小
2 仓库访问
仓库(Repository
)是集中存放镜像的地方,注册服务器(Registry
)是管理仓库的具体服务器
每个服务器上可以有多个仓库,而每个仓库下面有多个镜像
对于仓库地址 docker.io/ubuntu
来说,docker.io
是注册服务器地址,ubuntu
是仓库名
2.1 Docker Hub
Docker Hub 是 Docker 官方维护的一个公共仓库
常见的相关命令:
docker login # 命令交互式的输入来完成登录Docker Hub
docker logout # 退出登录
docker search # 查找官方仓库中的镜像
docker pull # 下载仓库中的镜像到本地
docker push # 推送本地的镜像到远程仓库
付费功能:自动构建(Automated Builds
)镜像
- 在 Docker Hub 点击右上角头像,在账号设置中关联目标网站
- 新建或选择已有的仓库,在
Builds
选项卡中选择 `Configure Automated Builds - 选取一个目标网站中的项目(需要含
Dockerfile
)和分支 - 指定
Dockerfile
的位置,并保存(至此,就完成了自动构建的过程) - 在 Docker Hub 的仓库页面的
Timeline
选项卡中查看每次构建的状态
2.2 私有仓库
<code>docker-registry</code> 是官方提供的工具,可以用于构建私有的镜像仓库
使用官方的 registry
镜像来启动私有仓库:
docker run -d -p 5000:5000 --restart=always --name registry registry
假设私有仓库地址为 127.0.0.1:5000
,常见的相关命令:
docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest # 打标签
docker push 127.0.0.1:5000/ubuntu:latest # 上传标记的镜像
curl 127.0.0.1:5000/v2/_catalog # 查看仓库中的镜像
配置非 https 仓库地址:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
],
"insecure-registries": [
"192.168.199.100:5000"
]
}
- 对于使用
systemd
的系统,请在/etc/docker/daemon.json
中配置 - 对于 Windows 或 Mac,请在桌面版软件的设置中的
Docker Engine
中进行编辑
Docker 默认不允许非
HTTPS
方式推送镜像,可以通过 Docker 的配置来取消这个限制