有关Docker的基本概念
使用环境
Docker:版本20.10.5
由于工作需要,我有机会使用Docker,这里简单记录一下。
由于我还是个初学者,如果有任何错误,请指正。
使用 Docker 镜像生成容器。
在使用Docker时,最基本的流程如下:
1. 从Docker Hub拉取镜像
2. 使用从步骤1中拉取的镜像创建和运行容器
按照顺序进行解释。
使用以下命令从DockerHub上拉取镜像。
以下代码示例中下载了「gihyodocker/echo:latest」镜像。
$ docker image pull gihyodocker/echo:latest
执行以下命令即可确认是否已完成下载。
$ docker images
我可以用这个来确认我正在下载的图像。
从下载的图像中,通过以下命令创建并运行容器。
$ docker container run -t -p 3000:3000 gihyodocker/echo:latest
通过执行这条命令,应该能够确认正常运行,访问“http://localhost:3000”。
制作Docker镜像的方法
由于我在创建React应用程序时使用了Docker,因此这次我将以React环境作为示例进行讲解。
以下是我实际创建的应用程序的目录结构。
我的应用程序/
┣公共文件夹/
┣源代码文件夹/
┣package.json文件
…
┗Dockerfile文件
$ ・・/myapp> npm start
这个应用程序是通过上面的命令来启动的。
為了建立此應用程式的Docker映像檔,我將「Dockerfile」放置於myapp的根目錄中。
Dockerfile是一个描述在创建镜像时执行的命令的文件。
FROM node:latest
RUN mkdir /react_test/
ADD public /react_test/public/
ADD src /react_test/src/
ADD .gitignore /react_test/
ADD package.json /react_test/
ADD package-lock.json /react_test/
ADD README.md /react_test/
ADD yarn.lock /react_test/
WORKDIR /react_test
RUN npm install -g create-react-app
RUN npm install --save react react-dom react-scripts
CMD ["npm","start"]
以下是列出基本命令的内容。
从
创建作为Docker映像基础的映像。在这个例子中,因为需要使用node,所以下载了”node:latest”。这里的”:latest”表示下载最新版本的意思,也就是希望下载最新版本。如果指定为”node:16.3″或其他版本,就可以下载与自己环境相同的版本。
跑步 bù)
在构建Docker镜像时,定义在Docker容器内执行的命令。在上述例子中,我们使用mkdir命令创建了一个用于放置文件的目录,并进行了npm的安装。
加入
将托管Docker的主机上的文件和目录添加到Docker容器中。本次操作是为了启动应用程序所需的文件和文件夹。
写法为「ADD 要添加的文件/文件夹 添加到的目录」。
CMD命令
最后是指定要在容器内运行的进程。值得注意的是,Dockerfile内只能有一个。本例中我们写的是应用的启动命令”npm start”。
描述方式需要按空格将其分割成一个数组来写。
现在我们已经准备好创建Docker镜像了。
后面就只需要输入命令即可。
$ docker image build -t example:latest .
这样就创建了一个名为“例子”的图像。
正如上述所述,图像已经被正确创建。
$ docker images
可以通过以下途径进行确认。
让我们根据这个图像创建一个容器,并确认应用程序是否启动。就像刚才一样。
$ docker container run -t -p 9000:8000 example:latest
应该可以使用localhost:90000进行启动。
当您确认应用在这里启动后,就可以开始将自己的镜像上传到Docker Hub了。
将镜像上传至Dockerhub。
作为操作步骤:
① 创建 DockerHub 账户
② 在 DockerHub 上创建仓库
③ 将镜像上传到 DockerHub
总结来说,这就是按顺序进行的操作步骤。
仅需要一个选项:
① 创建Dockerhub账户
我想没有必要进行详细说明。请通过以下链接创建账户:
https://hub.docker.com/
在DockerHub上创建一个仓库时,可以通过点击页面顶部的”Repositories”,然后选择”Create Repository”来进入仓库创建页面。在那里,可以输入仓库的名称,然后点击”Create”来完成创建。仓库的名称应该是”自己的账户名/刚刚起的名字”。
假设在这里创建了一个名为「atsu123456789/dockerhub」的仓库。
将刚刚创建的”example”上传至DockerHub的步骤进行描述。
首先,需要将”example”的镜像名称与创建的仓库名称相同。
因此首先需要获取”example”的”IMAGE ID”。
$ docker images
用IMAGE ID在这里获得。
$ docker tag IMAGE_ID USER_NAME/IMAGE_NAME:TAG
执行以下命令。在这里,“IMAGE_ID”是刚刚获取的IMAGE ID,“USER_NAME”和“IMAGE_NAME”可以输入任意值。“:TAG”可以不输入,如果不输入,默认为“latest”。
这样,刚刚创建的“example”将成为名为“USER_NAME/IMAGE_NAME”的图像。
在本例中,我们不输入“:TAG”,而选择“atsu123456789/dockerhub”。
準备工作已完成,之后只需要进行推送即可。让我们使用以下指令将其推送至dockerhub吧。
$ docker push atsu123456789/dockerhub:latest
这个镜像已经上传到Docker Hub。
只需要使用我之前提到的pull指令,就可以轻松地与他人共享开发环境!Docker真是太厉害了!!!