0


【Docker】安装及使用

文章目录


1. 安装Docker Desktop

Docker Desktop是官方提供的桌面版Docker客户端,在Mac上使用Docker需要安装这个工具。

  1. 访问 Docker官方页面 并下载Docker Desktop for Mac。
  2. 打开下载的.dmg文件,并拖动Docker图标到应用程序文件夹。
  3. 安装完成后,打开Docker Desktop,等待Docker启动(菜单栏会出现一个鲸鱼图标)。

要验证安装是否成功,可以打开Terminal并运行以下命令:

  1. docker --version

你应该看到Docker版本信息,例如:

  1. Docker version 20.10.7, build f0df350

1.1 配置 Docker Desktop

  • 在“Resources”选项中可以调整Docker使用的资源(CPU、内存等),根据你的需求适当配置。

2. Docker基本概念

在使用Docker前,了解以下几个核心概念非常重要:

  • 镜像(Image): 镜像是一个包含程序运行环境和代码的只读模板。类似于虚拟机的快照。
  • 容器(Container): 容器是镜像的运行实例。它是独立的、隔离的应用程序执行环境。
  • Dockerfile: 用于定义如何构建一个Docker镜像的文件,里面包含了构建镜像的步骤。
  • Docker Hub: 类似于GitHub,是Docker官方提供的镜像仓库,用户可以从这里下载镜像或上传自定义镜像。

3. Docker常用命令

以下是一些常用的Docker命令,后面会详细介绍这些命令在开发中的具体应用:

  • docker pull <镜像>:从Docker Hub拉取指定镜像。
  • docker build -t <镜像名> .:根据当前目录的Dockerfile构建镜像。
  • docker run <镜像>:运行镜像创建容器。
  • docker ps:查看正在运行的容器。
  • docker stop <容器ID>:停止一个运行中的容器。
  • docker rm <容器ID>:删除一个容器。
  • docker rmi <镜像ID>:删除一个镜像。
  • docker exec -it <容器ID> /bin/bash:进入一个运行中的容器。

4. Java后端开发中使用Docker

假设我们有一个Java Spring Boot项目,我们可以通过Docker来运行它。

4.1 创建Dockerfile

首先,在项目的根目录下创建一个名为

  1. Dockerfile

的文件,并编写以下内容:

  1. # 使用OpenJDK镜像作为基础镜像
  2. FROM openjdk:11-jdk-slim
  3. # 设置工作目录
  4. WORKDIR /app
  5. # 将当前目录下的所有文件复制到容器中的/app目录
  6. COPY . /app
  7. # 编译Spring Boot应用程序
  8. RUN ./mvnw package
  9. # 暴露Spring Boot的默认端口8080
  10. EXPOSE 8080
  11. # 运行应用程序
  12. CMD ["java", "-jar", "target/your-app.jar"]

4.2 构建镜像并运行容器

  1. 在项目根目录打开终端,运行以下命令构建镜像:
  1. docker build -t springboot-app .
  1. 构建完成后,运行镜像并创建容器:
  1. docker run -p 8080:8080 springboot-app

此时,Java Spring Boot应用程序已经在Docker容器中运行,可以通过访问

  1. http://localhost:8080

来访问服务。

5. Python后端开发中使用Docker

假设我们有一个Flask应用程序,以下是如何使用Docker来运行它。

5.1 创建Dockerfile

同样的,我们在Flask项目的根目录下创建一个

  1. Dockerfile

文件:

  1. # 使用python镜像作为基础镜像
  2. FROM python:3.9-slim
  3. # 设置工作目录
  4. WORKDIR /app
  5. # 复制当前目录下的所有文件到容器中的/app目录
  6. COPY . /app
  7. # 安装Flask依赖
  8. RUN pip install -r requirements.txt
  9. # 暴露Flask默认端口5000
  10. EXPOSE 5000
  11. # 运行Flask应用程序
  12. CMD ["flask", "run", "--host=0.0.0.0"]

5.2 构建镜像并运行容器

  1. 构建镜像:
  1. docker build -t flask-app .
  1. 运行镜像并创建容器:
  1. docker run -p 5000:5000 flask-app

此时,Flask应用程序已经在Docker容器中运行,可以通过访问

  1. http://localhost:5000

来访问服务。

6. Docker Compose使用

如果你的项目需要多个服务(例如,后端、数据库、缓存等),可以使用Docker Compose来管理多个容器。

6.1 创建

  1. docker-compose.yml

在项目根目录下创建一个

  1. docker-compose.yml

文件。以下是一个Spring Boot和MySQL的示例:

  1. version:'3'services:app:image: springboot-app
  2. build:context: .
  3. ports:-"8080:8080"depends_on:- db
  4. db:image: mysql:8.0environment:MYSQL_ROOT_PASSWORD: rootpassword
  5. MYSQL_DATABASE: mydatabase
  6. ports:-"3306:3306"

6.2 使用Docker Compose

  1. 启动所有服务:
  1. docker-compose up --build
  1. 停止并删除所有服务:
  1. docker-compose down

7. 常见问题及解决方法

7.1 容器端口无法访问

  • 确认容器的端口映射是否正确,使用docker ps查看容器运行状态,确保-p <host_port>:<container_port>映射存在。
  • 检查防火墙或网络设置,确保端口是开放状态。

7.2 容器内存不足

  • 可以通过Docker Desktop的“Preferences” -> “Resources”来增加分配给Docker的内存。

7.3 镜像或容器清理

  • 使用docker system prune命令来清理无用的镜像和容器,释放空间:
  1. docker system prune -a
标签: docker eureka 容器

本文转载自: https://blog.csdn.net/weixin_44329069/article/details/142377238
版权归原作者 weixin_44329069 所有, 如有侵权,请联系我们删除。

“【Docker】安装及使用”的评论:

还没有评论