Basics
Basic Concepts & Commands
容器/container
是一个与所在机器,或者说 host 的其他所有进程独立的进程
拥有自己独立的文件系统,这一系统由镜像/image 提供。
镜像/image
镜像为文件与 meta data 的集合
镜像分层,每层可以修改文件成为新的镜像
不同镜像可共享相同的层 /layout
只读
所有镜像构成树(森林),一个镜像依赖的父节点由 Dockerfile 的 FROM 声明。特别地,无依赖的镜像为 FROM scratch
Dockerfile
Dockerfile 文件描述了一个 image 如何被构建。如果你拥有一个 Dockerfile,就可以在它所在目录下运行
docker build .
,这个命令会在当前目录下查找名为 Dockerfile (注意是大小写敏感的)的文件并执行文件中描述的构建动作。简要介绍 Dockerfile 可包含的构建动作。如上所述,FROM 会定义这个 image 依赖的 image,构建时会拉取其依赖。RUN 会执行一个给定的指令。CMD 指定 container 在这个 image 上运行的默认指令。
可以在 build 时带上参数
-t <tag>
来赋予 image 一个 human readable 的 name。之后执行 run 之类的指令就可以用这个 name 作为参数。
Docker Dashboard
一个用来方便地浏览和操作当前拥有的 Containers/Apps、Images 的界面
任务栏图标右键菜单中选择 Dashboard 即可运行
关于 Getting Started 中做的事情
docker run <image_name>
will first create a container layer over specified image, and then starts it using the specified command.-d
参数使得创建的 container 在 detached mode(后台)运行,-p
可以在指定的 host 端口和 container 端口之间建立映射。-w <directory>
可以指定 specified command 的执行路径,即 working directory。
docker ps -a
可以查看当前所有建立的 containerdocker rm <container_name>
可以删除一个已经建立的 container也可以使用 container ID(使用 ps 指令可以看到)来指定 container,并且只需要输入部分位数,docker 会寻找匹配结果
一个处于 running 状态的 container 是无法通过
rm
删除的,需要先停止或通过加-f
来删除。
docker stop <container_name>
可以停止运行一个正在运行的 containerdocker login -u <user_name>
可以在本地命令行登陆 Docker Hub,从而执行远程相关操作docker tag
可以为一个 image 添加新的名称(类似一个 URL 重定向?)docker push <image_name>
可以把一个本地的 image 推送到远端同名 repo
Container Volumes
container 可以通过 volume 将它的文件系统中特定的路径关联到 host 的路径,从而实现 container 的数据持久化。
named volumes 由 docker 维护存储,从而只需要通过 volume 的名字来操作它们。
docker volme create <volume_name>
可以创建一个指定名字的 named volume。docker run
的-v <volume_name>:<file_system_path>
可以把一个 named volume mount 到 docker 的文件系统的指定路径上。使用
docker volume inspect <volume_name>
可以看到 named volume 的信息,包括它的实际存储位置。bind mount 则由 docker 使用者维护,这一种 volume 的存储路径可以自由指定,常用于和 container 进行数据交换。例如,把本地的代码 mount 到 container 上。
Reference
docker 文档 https://docs.docker.com/reference/
docker基础知识 https://yq.aliyun.com/articles/734130?spm=5176.12281978.0.0.37722232dFdRyd
关于Dockerfile https://yq.aliyun.com/articles/735190?spm=5176.12281978.0.0.37722232dFdRyd
Last updated
Was this helpful?