镜像
- 是一个特殊的文件系统,不包含任何的动态数据。构建后不再发生改变
- 采用
Union FS技术,分层构建。便于在基础层定制私有化内容
容器
- 实质是一个进程。区别于普通进程,容器进程运行于属于自己的独立的 命名空间
- 镜像与容器的关系,可类比为 类 与 实例 的关系。容器是镜像运行时的实体
- 容器运行时,是以镜像为基础层,在其上创建一个当前 容器的存储层
- 容器储存层 生命周期跟随容器,应保持无状态化,不应写入任何数据
- 文件、数据写入应使用 数据卷(Volume),或直接绑定宿主目录。
docker Registry
- 一个docker Registry包含多个
仓库(Repository),每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。 - 以
<仓库名>:<标签>的形式来指定镜像,默认lasted - 镜像加速器,指国内云服务商针对 Docker Hub提供 的
镜像服务(Registry Mirror)。 - 示例:在
Perferences -> Daemon -> Registry mirrors。在列表中填写加速器地址 Docker 官方提供的中国 registry mirror,并重启docker即可
一些基础命令
# 登录docker login -u username -p password -e email# 查看版本docker version# 搜索镜像docker search# 拉取镜像docker pull# 列出容器,常用选项: -a 显示所有容器,包括未运行的; -l 显示最近创建的容器(最新一个); -s 显示总的文件大小• docker ps# 运行容器• docker run# docker commit, 保存对当前容器的修改用以生成一个新的容器,与 docker tag 有异同# option 可选:-a: 提交的作者; -c: 使用Dockerfile指令来创建镜像; -m: 提交时的说明文字; -p: 在commit时,暂停容器docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]# docker inspect, 获取容器、镜像的详细数据# option 可选:-f: 指定返回值的模板文件; -s: 显示总的文件大小; --type: 为指定类型返回jsondocker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]# 将本地镜像推送到远程镜像库,需要先登录, --disable-content-trust: 忽略镜像的校验,默认开启docker push [OPTIONS] NAME[:TAG]
一个可视化监控工具:portainer
$ docker volume create portainer_data$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
