学习Docker
  YFrCNnsHozyw 2023年11月02日 43 0

学习Docker

什么是Docker?

Docker 是一个开源的容器化平台,它允许用户将应用程序及其依赖打包成可移植的容器,并在任何支持 Docker 的环境中运行。

使用 Docker 可以方便地构建、部署和管理应用程序,同时还能提高开发效率、降低资源消耗等。因此,在现代软件开发中已经变得越来越普遍。

安装Docker

首先需要安装 Docker 软件。具体步骤如下:

  1. 下载并安装 Docker Desktop(Windows 或 macOS),或者 docker-ce(Linux)。
  2. 打开终端或命令提示符窗口,并输入以下命令验证是否成功安装了 Docker:
docker version

如果输出了版本信息,则说明已经成功安装。

基本概念

在开始使用 Docker 之前,需要掌握一些基本概念和术语。

镜像 (Image)

镜像是一个只读模板,它包含创建容器所需的所有文件系统内容、配置参数等信息。

容器 (Container)

容器是 Docker 镜像的可运行实例。一个容器包含了一个完整的文件系统、应用程序、库和依赖项等信息。

仓库 (Repository)

仓库是存储镜像的地方。Docker Hub 是最常见的公共 Docker 仓库,用户可以在其中找到并下载各种镜像。

常用命令

以下是一些常用的 Docker 命令:

  • docker pull [image]:从远程仓库获取指定镜像。
  • docker images:列出本地已有的所有镜像。
  • docker run [image]:创建并启动一个新容器,并基于指定镜像进行配置。
  • docker ps [-a]:列出正在运行中(或停止)的所有容器(使用 -a 参数可显示所有容器)。
  • docker exec -it [container] bash/shell:进入正在运行中的某个容器内部,并打开交互式终端以执行命令/操作。
  • docker stop/start/restart [container]: 暂停/启动/重启某个正在运行中(或停止) 的容器。

使用案例

运行一个Web应用

下面演示如何使用 Docker 运行一个简单的 Web 应用:

  1. 下载并安装 Node.js 和 npm(如果尚未安装),以及任何其他所需软件包和依赖项。
  2. 在项目根目录中创建一个 Dockerfile 文件,内容如下:
# 使用 Node.js 12 镜像作为基础镜像
FROM node:12

# 将当前目录下的所有文件拷贝到容器内 /app 目录下
COPY . /app

# 在容器内执行命令以安装所需依赖项(使用 npm)
RUN cd /app && npm install

# 暴露端口号 3000(Web 应用默认端口)
EXPOSE 3000

# 容器启动时运行的命令,即启动 Web 应用服务
CMD ["node", "/app/index.js"]
  1. 执行以下命令构建镜像:
$ docker build -t my-web-app .

其中 my-web-app 是自定义的镜像名称。

  1. 运行镜像并将其映射到本地主机上的某个端口:
$ docker run -p 8080:3000 my-web-app

其中 -p 参数表示将容器内部暴露出来的端口号 3000 映射到本地主机上的 8080 端口。

至此,我们已经成功运行了一个简单的 Web 应用,并通过 Docker 实现了它在不同环境中可移植性和部署性。

构建Java应用程序

接下来演示如何使用 Docker 构建、打包和分发 Java 应用程序。这里以 Spring Boot 项目为例:

  1. 在项目根目录下创建一个 Dockerfile 文件,内容如下:
# 使用官方 Java 8 镜像作为基础镜像
FROM openjdk:8-jdk-alpine

# 设置工作目录
WORKDIR /app

# 将本地 Maven 仓库缓存复制到容器内,以提高构建速度和效率(可选)
COPY .m2/ $HOME/.m2/

# 拷贝项目代码及依赖项等文件到容器内,并编译打包成 JAR 包
COPY target/my-app.jar my-app.jar

# 定义启动命令,即在容器启动时运行的命令。这里是执行 JAR 包。
ENTRYPOINT ["java","-jar","my-app.jar"]
  1. 执行以下命令构建镜像:
$ docker build -t my-java-app .

其中 my-java-app 是自定义的镜像名称。

  1. 运行应用程序并将其映射到主机上某个端口:
$ docker run -p 8080:8080 my-java-app

至此我们已经成功创建了一个可以通过 Docker 进行部署和分发的 Java 应用程序。

结论

Docker 的使用能够让开发者更快速地进行软件开发、测试、交付和部署等任务。同时,通过掌握一些常见的 Docker 命令和概念,在实际应用中能够更加高效地使用 Docker。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  wwLZeziuqjLR   2023年12月11日   32   0   0 Dockercentos
  MCWYWqSAMsot   2023年12月11日   33   0   0 Docker
  9JCEeX0Eg8g4   2023年12月10日   30   0   0 应用程序javaApache
  DnoStTHsc0vp   2023年12月11日   27   0   0 Docker
  wwLZeziuqjLR   2023年12月08日   103   0   0 Dockercentosbash
  wwLZeziuqjLR   2023年12月07日   36   0   0 Dockercentos