Java Docker本地部署

时间:2024-12-13 11:46:44

Docker 本地部署是指在本地计算机上安装和配置 Docker 环境,并使用 Docker 来运行和管理应用程序。本地部署可以帮助开发者在自己的机器上快速搭建开发环境,进行应用的开发、测试和调试。以下是一个详细的步骤指南,帮助你在本地计算机上部署 Docker。

1. 安装 Docker

1.1 Windows

  1. 检查系统要求:确保你的 Windows 版本是 Windows 10 Pro、Enterprise 或 Education(Build 14393 或更高版本)。家庭版用户可能需要更新到 Windows 10 Pro。
  2. 启用 WSL 2:打开 PowerShell 以管理员身份运行以下命令:
wsl --install
  1. 下载 Docker Desktop:访问 Docker 官方下载页面,下载适用于 Windows 的 Docker Desktop 安装包。
  2. 安装 Docker Desktop:双击下载的安装包,按照提示完成安装。
  3. 启动 Docker Desktop:安装完成后,启动 Docker Desktop。首次启动时,可能需要几分钟时间来初始化。

1.2 macOS

  1. 下载 Docker Desktop:访问 Docker 官方下载页面,下载适用于 macOS 的 Docker Desktop 安装包。
  2. 安装 Docker Desktop:双击下载的 .dmg 文件,按照提示完成安装。
  3. 启动 Docker Desktop:安装完成后,启动 Docker Desktop。首次启动时,可能需要几分钟时间来初始化。

1.3 Linux

  1. 更新系统
sudo apt-get update
sudo apt-get upgrade
  1. 安装必要的包
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
  1. 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. 设置稳定版存储库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 安装 Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
  1. 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

2. 配置 Docker

2.1 配置镜像加速

为了提高 Docker 镜像的下载速度,可以配置国内的镜像加速器。编辑 /etc/docker/daemon.json 文件,添加如下内容:

{
  "registry-mirrors": ["https://<Your-ID>.mirror.aliyuncs.com"]
}

然后重启 Docker 服务:

sudo systemctl restart docker

3. 测试 Docker 安装

运行以下命令来验证 Docker 是否安装成功:

docker run hello-world

如果一切正常,你应该会看到一条欢迎消息,说明 Docker 已经成功安装并运行。

4. 创建和管理 Docker 容器

4.1 创建 Dockerfile

Dockerfile 是一个文本文件,包含了一系列命令,用于构建 Docker 镜像。以下是一个简单的 Dockerfile 示例:

# 使用官方的 Python 镜像作为基础镜像
FROM python:3.8-slim-buster

# 设置工作目录
WORKDIR /app

# 将当前目录下的所有文件复制到容器的 /app 目录下
COPY . .

# 安装依赖
RUN pip3 install -r requirements.txt

# 指定容器启动时运行的命令
CMD ["python3", "app.py"]

4.2 构建 Docker 镜像

在包含 Dockerfile 的目录中运行以下命令来构建 Docker 镜像:

docker build -t my-app .

4.3 运行 Docker 容器

使用以下命令来运行 Docker 容器:

docker run -d -p 5000:5000 my-app

其中 -d 表示后台运行,-p 5000:5000 表示将宿主机的 5000 端口映射到容器的 5000 端口。

5. 使用 Docker Compose 管理多容器应用

5.1 创建 docker-compose.yml 文件

Docker Compose 允许你定义和运行多容器 Docker 应用程序。以下是一个简单的 docker-compose.yml 文件示例:

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

5.2 启动 Docker Compose

在包含 docker-compose.yml 文件的目录中运行以下命令来启动所有服务:

docker-compose up -d

其中 -d 表示后台运行。

6. 管理 Docker 容器和镜像

6.1 列出所有运行的容器

docker ps

6.2 列出所有容器(包括停止的)

docker ps -a

6.3 停止容器

docker stop <container-id>

6.4 删除容器

docker rm <container-id>

6.5 列出所有镜像

docker images

6.6 删除镜像

docker rmi <image-id>

7. 高级配置

7.1 配置 Docker 网络

Docker 提供了多种网络驱动,可以根据需要选择合适的网络配置。例如,创建一个自定义网络:

docker network create my-network

然后在 docker-compose.yml 文件中使用该网络:

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    networks:
      - my-network
  redis:
    image: "redis:alpine"
    networks:
      - my-network
networks:
  my-network:

7.2 使用 Docker Secrets

Docker Secrets 是一个用于存储和注入敏感数据(如密码、密钥等)的工具。例如,创建一个秘密:

echo "my-secret-value" | docker secret create my-secret -

然后在 docker-compose.yml 文件中使用该秘密:

version: '3.1'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    secrets:
      - my-secret
secrets:
  my-secret:
    external: true

8. 实战案例

8.1 部署一个简单的 Web 应用

假设你有一个简单的 Flask 应用,目录结构如下:

my-flask-app/
├── app.py
├── requirements.txt
└── Dockerfile

其中 app.py 文件内容如下:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

requirements.txt 文件内容如下:

Flask==1.1.2

Dockerfile 文件内容如下:

FROM python:3.8-slim-buster

WORKDIR /app

COPY . .

RUN pip3 install -r requirements.txt

CMD ["python3", "app.py"]

my-flask-app 目录中运行以下命令来构建和运行 Docker 容器:

docker build -t my-flask-app .
docker run -d -p 5000:5000 my-flask-app

打开浏览器,访问 http://localhost:5000,你应该能看到 "Hello, World!" 消息。

9. 总结

通过以上步骤,你可以在本地计算机上成功安装和配置 Docker,并使用 Docker 来运行和管理应用程序。Docker 的强大之处在于其轻量级、可移植和高效的特点,使得开发者可以在任何支持 Docker 的环境中快速搭建和运行应用。希望这些步骤对你有所帮助,祝你在 Docker 学习和实践中取得成功!