Docker-快速构建、运行、管理应用的工具

Docker-快速构建、运行、管理应用的工具
🐳 Docker 基础
“Docker 是一个快速构建、运行和管理应用的工具,能够帮助开发者以更简单的方式进行应用的部署和管理。”

  1. Docker 的核心概念
    1.1 镜像与容器
    镜像(Image):包含应用及其所需的环境、配置和系统库的打包文件。
    容器(Container):运行镜像时创建的隔离环境,每个镜像可以启动一个或多个容器。
    1.2 镜像仓库
    镜像仓库:存储和管理镜像的平台,Docker Hub 是最大的公共镜像仓库。
  2. Docker 命令解析
    2.1 常见命令
    命令 说明
    docker run 创建并运行一个容器
    docker pull 从镜像仓库拉取镜像
    docker push 推送镜像到镜像仓库
    docker ps 查看正在运行的容器
    docker stop 停止运行中的容器
    docker rm 删除一个或多个容器
    docker images 查看本地镜像列表
    docker rmi 删除一个或多个镜像
    2.2 部署 MySQL
    命令示例:
    bash
    Copy
    docker run -d --name ms -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 mysql
    说明:
    -d:让容器在后台运行。
    –name ms:容器命名为 ms,必须唯一。
    -p 3306:3306:将宿主机的 3306 端口映射到容器的 3306 端口。
    -e MYSQL_ROOT_PASSWORD=123:设置环境变量,定义 MySQL 的 root 密码。
    2.3 镜像命名规范
    镜像名称格式为 [repository]:[tag]。
    默认情况下,tag 为 latest 代表最新版本。
  3. 数据卷(Volume)
    3.1 数据卷的作用
    数据卷是一个虚拟目录,用于映射容器内目录与宿主机目录之间的桥梁,方便容器内文件的操作和数据迁移。
    3.2 常见数据卷命令
    命令 说明
    docker volume create 创建数据卷
    docker volume ls 查看所有数据卷
    docker volume rm 删除指定数据卷
    docker volume inspect 查看某个数据卷的详情
    docker volume prune 清除未使用的数据卷
  4. 自定义镜像
    4.1 Dockerfile 的作用
    Dockerfile:一个文本文件,定义了构建镜像的指令和过程。常见指令如下:
    指令 说明 示例
    FROM 指定基础镜像 FROM centos:6
    ENV 设置环境变量 ENV key value
    COPY 拷贝本地文件到镜像的指定目录 COPY ./jre11.tar.gz /tmp
    RUN 执行 Linux 的 shell 命令 RUN apt-get install -y package
    EXPOSE 指定容器运行时监听的端口 EXPOSE 8080
    ENTRYPOINT 镜像中应用的启动命令 ENTRYPOINT java -jar xx.jar
    4.2 构建镜像命令
    使用以下命令构建镜像:
    bash
    Copy
    docker build -t 镜像名 Dockerfile目录
  5. Docker Compose
    5.1 Docker Compose 介绍
    Docker Compose:通过一个 docker-compose.yml 文件定义一组相关联的应用容器,帮助实现多个容器的快速部署。
    5.2 示例配置
    yaml
    Copy
    version: “3.8”
    services:
    mysql:
    image: mysql
    container_name: mysql
    ports:
    • “3306:3306”
      environment:
      MYSQL_ROOT_PASSWORD: 123
      volumes:
    • “./mysql/data:/var/lib/mysql”
  6. 网络配置
    6.1 默认网络
    默认情况下,所有容器通过 bridge 方式连接到 Docker 的虚拟网桥上。
    6.2 自定义网络命令
    命令 说明
    docker network create 创建一个网络
    docker network ls 查看所有网络
    docker network rm 删除指定网络
    docker network prune 清除未使用的网络
  7. 项目部署
    7.1 部署 Java 应用
    需求:将 Java 项目打包为镜像并部署,镜像名为 hmall。
    7.2 部署前端
    需求:创建一个新的 Nginx 容器,将配置文件和 HTML 目录挂载到容器中。
    🐳 Docker Compose 概述
    “Docker Compose 通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的 Docker 容器的快速部署。”

Docker Compose 文件结构
示例配置
以下是一个 Docker Compose 文件的示例,定义了 MySQL 和 Nginx 服务:

yaml
Copy
version: “3.8”

services:
mysql:
image: mysql
container_name: mysql
ports:
- “3306:3306”
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123
volumes:
- “./mysql/conf:/etc/mysql/conf.d”
- “./mysql/data:/var/lib/mysql”
- “./mysql/init:/docker-entrypoint-initdb.d”
networks:
- hmall

nginx:
image: nginx
container_name: nginx
ports:
- “18080:18080”
- “18081:18081”
volumes:
- “./nginx/nginx.conf:/etc/nginx/nginx.conf”
- “./nginx/html:/etc/nginx/html”
depends_on:
- hmall
networks:
- new

networks:
new:
name: hmall
启动 MySQL 容器
使用以下命令启动 MySQL 容器:

bash
Copy
docker run -d
–name mysql
-p 3306:3306
-e TZ=Asia/Shanghai
-e MYSQL_ROOT_PASSWORD=123
-v ./mysql/data:/var/lib/mysql
-v ./mysql/conf:/etc/mysql/conf.d
-v ./mysql/init:/docker-entrypoint-initdb.d
–network hmall
mysql
Docker Compose 命令格式
命令和选项
类型 参数或指令 说明
Options -f 指定 compose 文件的路径和名称
-p 指定 project 名称
Commands up 创建并启动所有 service 容器
down 停止并移除所有容器、网络
ps 列出所有启动的容器
logs 查看指定容器的日志
stop 停止容器
start 启动容器
restart 重启容器
top 查看运行的进程
exec 在指定的运行中容器中执行命令
关键概念
服务(Services): 定义在 Docker Compose 文件中的应用容器。
网络(Networks): 用于定义服务之间的通信方式。
卷(Volumes): 用于持久化数据,确保数据在容器重启后依然可用。
小结
Docker Compose 使得管理多个 Docker 容器变得简单,通过 YAML 文件结构化定义服务的配置,用户可以快速部署和管理容器化应用。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值