docker常见名词及其关系

elltor 2021年01月19日 147次浏览

第一次学习 docker 会有几个概念使人迷惑,今天总结一下他们之间的关系。

他们之间的关系:

image.png

先理清楚几个概念

仓库:通常只 docker hub,是 docker 的中央仓库,当然我们也可以自建仓库。

Dockerfile:构建容器镜像的配置文件,可以把它理解为生成镜像的 “菜单”。

镜像 image:镜像用来生成 docker 容器,容器通过 commit 命令可以将容器持久化为 image。

TAR:是 docker 镜像(image)归档存储文件,该文件未压缩。

Container:docker 运行的实体,所有程序在容器内运行,容器具有隔离性,容器之间除非通过网络(network)连接,否则相互隔离。

相互转化的命令

将 Dockerfile 构建为镜像

# 常用,当前目录下的 Dockerfile 必须以 “Dockerfile” 命名
# -t 指定构建镜像(image)的名字(image_name)个标签(tag), (.)代表当前路径
docker build -t image_name:tag .

# 指定Dockerfile
# -f 指定Dockerfile
docker build -f Daocker-api -t image_name:tag

拉取镜像

# 在命令后直接加名字和标签即可从 docker hub 拉取镜像
docker pull nginx:latest

运行容器

# -i 进入容器 -t tty终端 -d 后台运行  image_name:tag 是镜像名称和标签
docker run -itd image_name:tag /bin/bash

将容器转化为镜像

# my_container 为容器名    my_image:v1 为镜像名和标签
docker commit my_container my_image:v1

把镜像归档存储

# -o 指定输出到哪个文件, my_nginx:v1 为镜像名和标签
docker save -o ./nginx.tar  my_nginx:v1 

加载归档的镜像文件

# 加载 nginx.tar 文件, -i 读取归档(archive)文件
docker load -i ./nginx.tar

# 查看
[root@lqc ~]# docker images
REPOSITORY              TAG                    IMAGE ID            CREATED             SIZE
my_nginx                v1                     3e37a8441470        2 hours ago         133MB

注意:加载后的镜像会覆盖本地的镜像