Docker 镜像构建保姆级入门实战指南

原创
ithorizon 7个月前 (10-06) 阅读数 35 #Linux

一、什么是Docker镜像?

Docker镜像是一种轻量级的、可执行的软件包,它包含运行应用程序所需的所有组件,如代码、运行时、库、环境变量和配置文件等。Docker镜像是基于文件系统的,可以看作是一个虚拟机的镜像,但是它比虚拟机更轻量级,由于它不包含操作系统。

二、Docker镜像的构建流程

构建Docker镜像首要包括以下几个步骤:

1. 编写Dockerfile:Dockerfile是一个包含指令和参数的文本文件,用于构建Docker镜像。

2. 运行Docker构建命令:使用Docker的构建命令,采取Dockerfile中的指令构建镜像。

3. 镜像推送(可选):将构建好的镜像推送到Docker仓库。

三、Dockerfile的基本语法

Dockerfile由一系列指令组成,每个指令都对应一个操作。以下是Dockerfile的基本语法:

- FROM:指定基础镜像,如`FROM ubuntu:18.04`。

- RUN:在容器中执行命令,如`RUN apt-get update && apt-get install -y nginx`。

- COPY:将文件或目录复制到镜像中,如`COPY . /app`。

- ADD:类似于COPY,但可以自动解压缩tar文件,如`ADD package.tar.gz /app/`。

- WORKDIR:设置工作目录,如`WORKDIR /app`。

- CMD:设置容器启动时运行的命令,如`CMD ["nginx", "-g", "daemon off;"]`。

- EXPOSE:暴露容器端口,如`EXPOSE 80`。

- ENV:设置环境变量,如`ENV NAME World`。

- USER:设置运行用户,如`USER daemon`。

四、实战:构建一个易懂的Nginx镜像

下面我们将通过一个易懂的例子来构建一个Nginx镜像。

1. 创建一个名为`Dockerfile`的文件,并添加以下内容:

bash

FROM nginx:latest

COPY . /usr/share/nginx/html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

2. 进入当前目录,运行以下命令构建镜像:

bash

docker build -t nginx-test .

3. 查看镜像列表:

bash

docker images

4. 运行镜像:

bash

docker run -d -p 8080:80 nginx-test

5. 访问`http://localhost:8080`,你应该能看到Nginx的默认页面。

五、实战:构建一个包含Node.js应用的镜像

下面我们将通过一个例子来构建一个包含Node.js应用的镜像。

1. 创建一个名为`Dockerfile`的文件,并添加以下内容:

bash

FROM node:14

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["npm", "start"]

2. 在当前目录下创建一个名为`package.json`的文件,并添加以下内容:

json

{

"name": "node-app",

"version": "1.0.0",

"main": "app.js",

"scripts": {

"start": "node app.js"

}

}

3. 创建一个名为`app.js`的文件,并添加以下内容:

javascript

const http = require('http');

const hostname = '127.0.0.1';

const port = 3000;

const server = http.createServer((req, res) => {

res.statusCode = 200;

res.setHeader('Content-Type', 'text/plain');

res.end('Hello, Docker! ');

});

server.listen(port, hostname, () => {

console.log(`Server running at http://${hostname}:${port}/`);

});

4. 运行以下命令构建镜像:

bash

docker build -t node-app .

5. 运行镜像:

bash

docker run -d -p 3000:3000 node-app

6. 访问`http://localhost:3000`,你应该能看到“Hello, Docker!”的提示。

六、总结

通过本文的学习,你现在已经掌握了Docker镜像的基本概念和构建方法。你可以采取自己的需求,构建适合自己项目的Docker镜像。在实际应用中,Docker镜像的构建会更加繁复,但基本的原理和步骤是相似的。

期望本文能帮助你迅速入门Docker镜像的构建,祝你学习愉快!

本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Linux


热门