📢Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。
📢想要搞懂Docker,两句口号就行。
第一句是“Build, Ship and Run”(搭建、发送、运行,三板斧)
第二句是“Build once,Run anywhere”(搭建一次,到处能用)
1️⃣💭虚拟机和Docker的对比
- 虚拟机属于虚拟化技术,Docker这样的容器技术。
- 虚拟机虽然可以隔离出很多“子电脑”,但占用空间更大,启动更慢,虚拟机软件可能还要花钱(例如VMWare)。而容器技术恰好没有这些缺点,它不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境(类似“沙箱”)。
2️⃣💬Docker组件
- 客户端、宿主机、仓库
- images、Container、Registry
Image
image是分层的,并且每一层都可以添加改变删除文件,成为一个新的image。不同的image可以共享相同的layer。image本身是read-only的。
Container
Container由image创建,并在image layer上创建一可读写的Container layer(R/W层)。Writeble Container层的读写操作仅是记录,并不会对下面的read-only Image产生影响。
Registry
仓库,用于存放镜像的地方(分为公有和私有仓库)。可以直接使用docker pull命令将仓库中的镜像拉到本地,默认的仓库Docker的官方仓库Docker Hub Registry。
3️⃣🎈Docker命令总览
能把下面两幅图上的命令全都看懂并且会操作说明都把握住了😚
4️⃣🍉DockerFile命令
DockerFile构建属于自己的最完美的镜像
官方的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的工程师是怎样用的。
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢未来很长,值得我们全力奔赴更美好的生活✨