[Day8] Docker 介绍

在前几篇文章我们学习了Django的基本专案建置,
相信大家在安装过程当中多少都会碰到一些问题,以及许多要重新安装甚至是设定的部分。
那如果未来的服务是需要架设到不同的环境当中,那不是每一台机器都要重新进行设定了吗?
想到这个相信就会让许多人非常头痛吧~

但是聪明的工程师们设计研发出一个非常好用的应用程序 Docker
在接下来的单元我们要来介绍在环境设定与部属方面的神器 -- Docker
Docker 可以将环境的设定打包,并且只要在每个机器当中安装好Docker,并且执行,
机器便可以成功跑起来一模一样的服务~

Docker 介绍

Docker 是一种容器化技术,可以将环境,设定,程序制作成容器,供开发指使用。
藉由其方便的操作,可以让我们得到快速部署快速创建的效益。

Docker 架构

https://ithelp.ithome.com.tw/upload/images/20210921/20140477JZOlGKe6Nd.png
如上图所示,在电脑上安装Docker Engine ,Docker 容器可运行於其上

运行Docker

要启动Docker 的容器,我们要先制作Dockerfile

我们新增一个名为Dockerfile的档案

FROM python:3.7-alpine

#复制 requirements.txt进入docker 内部
COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt

#新增资料夹
RUN mkdir /app
#将外部的app资料夹复制进入docker内部
COPY ./app /app
#设定当前工作环境路径为 /app
WORKDIR /app

CMD ["python","app.py"]

其中FROM会从Docker hub中下载指定的docker image
我们可以在 docker hub 中找出适合我们的版本https://hub.docker.com/
储存Dockerfile之後,我们透过docker build 建立docker image

docker build . -t <image名称>

此时我们会建立一个image
我们可以透过下面指令可以查看机器上所有的image

docker images 

透过 docker run 可以把已经制作好的image run 起来,成为container

docker run <image名称>

如此就可以将设定的Docker程序启动了~

今天是中秋节~
祝大家能跟家人,朋友,心爱的人们度过美好的一天~
大家明天上班加油!


<<:  LeetCode解题 Day21

>>:  【Day 06】LeetCode:Two Sum ( 用 JavaScript 学演算法 )

Day 23:最小生成树(MST)

贪婪演算法可以解决的一个问题就是找到一张图中的最小生成树(minimum spanning tree...

[Day29] 正规表达式 - 中英空白生成器实作

「曾经沧海难为水,中英不空眼睛痛」,每当看到文字没对齐、段落没缩排或者中文字遇英文字不加空白,就会感...

Day22 高阶网路应用 GPS 和 Ender Modem

今天来看 CC: Tweaked 最後一个网路应用 GPS 用途是让电脑可以取得自己的座标 而这个座...

[第十只羊] 迷雾森林舞会III 参见排版神器 Tailwind

天亮了 昨晚是平安夜 关於迷雾森林故事 第九夜 站在方舟甲板的洛神 数了一下玩家人数 就问 怎麽少了...

Day 19 - Execution Context

JavaScript 在运作时会建立执行环境,分为 Global Execution Context...