天天看点

天天在捣鼓Docker,你是否真正的把握住了?

📢Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。

📢想要搞懂Docker,两句口号就行。

第一句是“Build, Ship and Run”(搭建、发送、运行,三板斧)

第二句是“Build once,Run anywhere”(搭建一次,到处能用)

1️⃣💭虚拟机和Docker的对比

  • 虚拟机属于虚拟化技术,Docker这样的容器技术。
  • 虚拟机虽然可以隔离出很多“子电脑”,但占用空间更大,启动更慢,虚拟机软件可能还要花钱(例如VMWare)。而容器技术恰好没有这些缺点,它不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境(类似“沙箱”)。
天天在捣鼓Docker,你是否真正的把握住了?
天天在捣鼓Docker,你是否真正的把握住了?

2️⃣💬Docker组件

  • 客户端、宿主机、仓库
  • images、Container、Registry
天天在捣鼓Docker,你是否真正的把握住了?

Image

image是分层的,并且每一层都可以添加改变删除文件,成为一个新的image。不同的image可以共享相同的layer。image本身是read-only的。

天天在捣鼓Docker,你是否真正的把握住了?

Container

Container由image创建,并在image layer上创建一可读写的Container layer(R/W层)。Writeble Container层的读写操作仅是记录,并不会对下面的read-only Image产生影响。

天天在捣鼓Docker,你是否真正的把握住了?

Registry

仓库,用于存放镜像的地方(分为公有和私有仓库)。可以直接使用docker pull命令将仓库中的镜像拉到本地,默认的仓库Docker的官方仓库Docker Hub Registry。

3️⃣🎈Docker命令总览

能把下面两幅图上的命令全都看懂并且会操作说明都把握住了😚
天天在捣鼓Docker,你是否真正的把握住了?
天天在捣鼓Docker,你是否真正的把握住了?

4️⃣🍉DockerFile命令

DockerFile构建属于自己的最完美的镜像
天天在捣鼓Docker,你是否真正的把握住了?
天天在捣鼓Docker,你是否真正的把握住了?
官方的Centos7为例
FROM scratch
ADD centos-7-x86_64-docker.tar.xz /

LABEL \
    org.label-schema.schema-version="1.0" \
    org.label-schema.name="CentOS Base Image" \
    org.label-schema.vendor="CentOS" \
    org.label-schema.license="GPLv2" \
    org.label-schema.build-date="20201113" \
    org.opencontainers.image.title="CentOS Base Image" \
    org.opencontainers.image.vendor="CentOS" \
    org.opencontainers.image.licenses="GPL-2.0-only" \
    org.opencontainers.image.created="2020-11-13 00:00:00+00:00"

CMD ["/bin/bash"]      

📢下一篇文章带兄弟们一起学习Docker更深层的东西,看看年薪20W的工程师是怎样用的。

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

📢未来很长,值得我们全力奔赴更美好的生活✨