Docker 总结
我对Docker的理解虽然不太透彻,但我会总结一下自己的感受。
我强迫自己学习的教材如下
Docker 是什么
・我脑海中有一个关于搭建环境的 Github 的概念。
・通过在Hub上上传一个被称为“雏形”的概念图,可以与他人共享环境。
・由于将环境进行代码化,因此在团队开发中是必不可少的。
・可以在开发环境和生产环境下几乎使用相同的条件进行实施。
・因此,在现代企业中几乎被广泛应用。

参考:Docker超入门②〜如何开始使用Docker〜【适合初学者】。
流れ如上图所示。
只需要一种选项:
① 从名为 Dockerfile 的环境设计图创建镜像
② 然后创建容器
③ 在容器内构建可复现的环境
Dockerfile 是什么
・一个共享环境的设计图
・在想要共享的文件夹的相同层次创建
・通过构建来创建共享文件夹的图像(环境模板)
以下是源代码的一个例子
FROM ruby:2.7
ENV RAILS_ENV=production
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update -qq \
&& apt-get install -y nodejs yarn
WORKDIR /app
COPY ./src /app
RUN bundle config --local set path 'vendor/bundle' \
&& bundle install
COPY start.sh /start.sh
RUN chmod 744 /start.sh
CMD ["sh", "/start.sh"]
参考: Docker初学者入门讲座综合版 | 从零实践的四小时全套课程
什么是映像容器?
从Dockerhub这个服务上将镜像安装到本地并使用,
镜像中包含了像ubuntu这样的操作系统以及像postgresql、MySQL这样的中间件,
还有像ruby、PHP这样的编程语言等。
通过Dockerfile来创建镜像,
也就是从Dockerhub上安装软件。
然后通过这个镜像来启动容器,
以重现工作环境在容器内进行。
容器和虚拟机的区别
以下是我个人觉得容易理解的:

请参考《Docker入门指南①- 什么是Docker?- 适合初学者》
在使用大量资源时,虚拟机是一种节能方式;而 Docker 则不能在 Mac 上运行 Windows 的电脑游戏,但虚拟机可以。
学习的利与弊
优点
・学习基础设施知识
・不再害怕AWS和Heroku
・学习互联网知识
・如果以后要进行测试自动化等工作,知识将是必需的
・换句话说,似乎就业后也是必不可少的
・听说在就业活动中受到高度评价
缺点
・学习成本高
・有很多不明白的事情,让人觉得灰心丧气
说实话,这就是全部
其他
・我对Docker-machine、docker-compose和Docker-swarm等东西还不太了解。
・我对VPC等也真的不太了解。我对互联网的基本知识缺乏。
・我还不太清楚在开发中实际使用它们的好处。