Docker(🐋)学习笔记-1
本文最后更新于:2023年5月2日 凌晨
Docker是什么?
是一条🐋是一个应用容器引擎。反正就是你可以用它来打包、传输和新机器上快速部署应用。(为应用提供一个独立的、隔离的沙盒环境)
什么是容器?
这里引用官方文档的原文,一个容器可以总结以下几点:
- 是一个镜像的可运行实例。你能够通过使用DockerAPI和CLI来创建、启动、停止、移动或是删除一个容器。
- 可以运行在本地或虚拟机上,又或是部署在云上。
- 是便携的(可运行在任何操作系统上)
- 和其他的容器是隔离的,并且运行它自己拥有的软件、二进制文件和配置。
在自己的机器上安装Docker
官方提供了三种平台(Mac、Windows、Linux)的安装文档:Get Docker。我自己是Windows平台。
Docker的安装可能比较复杂(因为还需要Windows安装Linux子系统和虚拟机平台支持什么的)!请耐心一步一步来并解决各种问题!
安装成功后的Docker Desktop
界面:
同样的,你也可以在命令行中使用docker run hello-world
命令进行验证,安装好后应该如图所示:
跟着官方创建一个容器并在其上面启动app
首先,我们把项目克隆到本地:git clone https://github.com/docker/getting-started.git
。
然后在vscode
中打开项目文件夹(当然了,vscode
需要安装Docker扩展)。
注意到目录中的Dockerfile
了吗?它是个简单的指令脚本,而且没有文件扩展,Docker
就是用这个脚本来构建容器镜像的。
现在,让我们在当前文件夹的子文件夹app
中创建一个Dockerfile
脚本。
- 第一步,打开
vscode
的悬浮命令行面板(快捷键为Ctrl+Shift+P
),输入Terminal
,找到Terminal:Create New Terminal
并单击。 - 哦,当然,记得使用
Command Prompt
而不是使用Powershell
,下面的命令在Powershell
中并不适用。要使用Command Prompt
,在刚刚弹出的终端窗口的右上角,点击+
和...
之间的按钮,在弹出的列表中选择即可。 - 第二步,执行以下命令:
cd app
,进入app
文件夹;type nul > Dockerfile
,创建Dockerfile
脚本文件。
然后将以下内容复制到Dockerfile
中:第一行的1
2
3
4
5
6
7
8# syntax=docker/dockerfile:1
FROM node:18-alpine
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
EXPOSE 3000FROM
指令初始化了一个新的构建阶段并为后续指令设置基本镜像,一个合法的Dockerfile
必须以该指令开头。
第二行的WORKDIR
就是为后续的RUN
、CMD
、ENTRYPOINT
、COPY
和ADD
设置工作路径。
第三行的COPY
指令从<src>
复制新文件或目录,并将它们添加到容器的文件系统路径<dest>
中。 第四行的
RUN就是执行跟在其后面的指令。 第五行的
CMD指令的主要目的是为正在执行的容器提供默认值,这些默认值可以包含可执行文件,也可以在你指定
ENTRYPOINT的情况下省略可执行文件。 第六行的
EXPOSE指令告知
Docker容器在运行的时候监听指定的网络端口,你可以指定端口是监听UDP还是TCP(
EXPOSE 3000/udp),默认为TCP。 那么接下来就能够构建一个容器镜像了。在
app目录下使用如下命令:
docker build -t getting-started .`(了解更多有关该指令的信息,可以参考官方文档)如果本地没有所需要的镜像(
FROM
指定的),那么Docker
就需要从网上拉取。docker run -dp 3000:3000 getting-started
来启动。
更新应用
TO DO…
参考文档
Docker官方文档。
希望本文章能够帮到您~
Docker(🐋)学习笔记-1
https://map1e-g.github.io/2023/04/27/docker-learning-1/