文章目录

  • 什么是Docker?
  • 为什么要使用Docker?
  • Docker的基本概念
  • 实例演示
  • DockerFile
  • (what)DockerFile
  • (how)Dockerfile构建过程
  • Dockerfile指令
  • 什么是容器数据卷



当下云原生技术正在风靡全球,其中Docker无疑是最受欢迎的容器化平台之一。它以其轻量、灵活和可移植的特性,在软件开发、交付和运维方面带来了许多好处。本篇博客将介绍Docker的基本概念和用法,并通过实例演示如何运行和管理Docker容器。

什么是Docker?

Docker是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成一个独立的、可移植的容器。每个容器都是一个完整、自包含的运行环境,拥有自己的文件系统、库、环境变量等。这种轻量级的虚拟化技术使得容器可以快速部署、可移植、可伸缩,并且在不同的环境中保持一致性。

为什么要使用Docker?

  1. 隔离性和资源利用率:Docker容器提供了强大的隔离性,每个容器之间相互独立,互不影响。同时,它也能够更好地利用系统资源,避免了虚拟机带来的性能损失。
  2. 快速部署和扩展:Docker容器可以在几秒钟内启动和停止,大大加快了应用程序的部署和迭代速度。同时,它也支持自动化扩展,可以根据负载情况自动创建或销毁容器实例。
  3. 环境一致性:使用Docker容器可以确保应用程序在不同的环境中具有一致的行为。开发人员可以在本地开发环境中构建和测试容器,然后将其推送到生产环境中,减少了由于环境差异带来的问题。

Docker的基本概念

在开始使用Docker之前,我们需要了解一些基本概念:

  1. 镜像(Image):镜像是Docker容器的基础,类似于面向对象编程中的类。它是一个只读的模板,包含了运行应用程序所需的文件系统、库和配置等。我们可以通过构建或下载现有的镜像来创建自己的容器。
  2. 容器(Container):容器是镜像的一个实例,类似于面向对象编程中的对象。它包含了运行应用程序所需的所有内容,并且可以被启动、停止、删除等。每个容器都是相互独立的,拥有自己的运行环境。
  3. 仓库(Repository):仓库是用来存储和分享镜像的地方。Docker Hub是一个公共的仓库,其中包含了大量的官方和社区维护的镜像。我们也可以创建自己的仓库,用于存储和共享自己构建的镜像。

实例演示

接下来,我们将通过一个实例演示如何使用Docker来运行一个简单的Web应用。

  1. 安装Docker:首先,我们需要在本地环境中安装Docker。具体的安装步骤可以参考Docker官方文档
  2. 编写Dockerfile:Dockerfile是用来定义镜像内容和构建过程的文件。在本例中,我们创建一个名为Dockerfile的文件,内容如下:
# 使用一个现有的基础镜像
FROM nginx:latest

# 将本地的index.html文件复制到容器中的指定路径
COPY index.html /usr/share/nginx/html

# 暴露容器的80端口
EXPOSE 80

上述文件指定了基于nginx:latest镜像构建一个新的镜像,将本地的index.html文件复制到容器中,并且暴露容器的80端口。

  1. 构建镜像:打开终端,进入包含Dockerfileindex.html文件的目录,执行以下命令构建镜像:
docker build -t my-web-app .
  1. 运行容器:构建完成后,我们可以使用以下命令来运行容器:
docker run -d -p 80:80 my-web-app

上述命令会在后台运行一个名为my-web-app的容器,并将主机的80端口映射到容器的80端口。

  1. 访问Web应用:最后,我们可以通过浏览器访问http://localhost来查看运行在容器中的Web应用。

以上就是一个简单的Docker实例,通过上述步骤,我们成功地构建并运行了一个基于Nginx的Web应用。

DockerFile

(what)DockerFile

dockerfile是用来构建docker镜像的文件,命令参数脚本
构建步骤:
1.编写一个dockerfile文件
2.docker build构建成为一个镜像
3.docker run运行镜像
4.docker push发布镜像(dockerhub、阿里云镜像仓库)

(how)Dockerfile构建过程

1.每个保留关键字(指令)都是大写字母
2.执行从上到下顺序执行
3.#表示注释每一个指令都会创建提交一个新的镜像层
DockerFile:构建文件,定义了一切的步骤,源代码
DockerImages:通过DockerFile构建生成的镜像,最终发布和运行的产品Docker容器:容器就是镜像运行起来提供服务

Dockerfile指令

FROM			# 基础镜像
MAINTAINER		# 镜像是谁写的,姓名邮箱
RUN				# 镜像构建的时候需要运行的命令
ADD				# 步骤,tomcat镜像,这个tomcat压缩包,添加内容WORKDIR			# 镜像的工作目录
VOLUME			# 挂载的目录
EXPOSE			# 暴露端口配置

什么是容器数据卷

需求:数据持久化,数据可以存在本地不会发生删了docker,数据也没了的情况方式:目录挂载,数据同步机制
方式一:直接使用命令来挂载 -v

docker run -it -v 主机目录:容器目录

方式二:已有容器挂载
方法:修改配置文件(需停止docker服务)
1、停止docker服务

systemctl stop docker.service(关键,修改之前必须停止docker服务)

2、修改配置文件中的目录位置

vim /var/lib/docker/containers/container-ID/config.v2.json修改配置文件中的目录位置,然后保存退出