Docker-基础(数据卷、自定义镜像、Compose)

Docker是一个开源的容器化平台,提供了一种标准化的方式来构建、运行和共享应用程序容器。本文将介绍Docker的三个重要概念:数据卷、自定义镜像和Docker Compose。

1. 数据卷(Volumes)

数据卷是Docker中用于持久化和共享容器数据的一种机制。与容器的生命周期无关,数据卷可以在容器之间共享和重用。

1.1 创建和使用数据卷

创建一个数据卷:

复制代码
docker volume create my_volume
​

在容器中使用数据卷:

复制代码
docker run -d -v my_volume:/app/data --name my_container my_image
​

在这个例子中,my_volume卷被挂载到容器内的 /app/data目录。

1.2 数据卷的优点
  • 持久化数据:容器删除后,数据仍然存在。
  • 性能:数据卷在宿主机上直接管理,性能较高。
  • 易于备份和恢复:数据卷可以很方便地备份和恢复。

2. 自定义镜像(Custom Images)

自定义镜像是基于基础镜像,通过添加应用程序代码、依赖包或配置文件等创建的新的镜像。通常使用Dockerfile来构建自定义镜像。

2.1 创建Dockerfile

一个简单的Dockerfile示例如下:

复制代码
# 使用官方的基础镜像
FROM ubuntu:20.04

# 维护者信息
LABEL maintainer="your_email@example.com"

# 安装依赖包
RUN apt-get update && apt-get install -y python3

# 复制应用程序代码到容器中
COPY . /app

# 设置工作目录
WORKDIR /app

# 指定容器启动时运行的命令
CMD ["python3", "app.py"]
​
2.2 构建自定义镜像

在Dockerfile所在目录下运行以下命令来构建镜像:

复制代码
docker build -t my_custom_image .
​
2.3 运行自定义镜像

使用以下命令运行自定义镜像:

复制代码
docker run -d --name my_custom_container my_custom_image
​

3. Docker Compose

Docker Compose是一种用于定义和运行多容器Docker应用程序的工具。通过使用YAML文件,可以轻松地配置应用程序的服务、网络和卷。

3.1 创建docker-compose.yml文件

一个简单的 docker-compose.yml示例:

复制代码
version: '3'
services:
  web:
    image: my_custom_image
    ports:
      - "5000:5000"
    volumes:
      - my_volume:/app/data
    networks:
      - my_network

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
    networks:
      - my_network

volumes:
  my_volume:

networks:
  my_network:
​
3.2 启动Compose应用

docker-compose.yml所在目录下运行以下命令启动应用:

复制代码
docker-compose up -d
​
3.3 管理Compose应用

查看运行中的服务:

复制代码
docker-compose ps
​

停止服务:

复制代码
docker-compose down
相关推荐
dapeng-大鹏2 小时前
KVM+LVM 零停机在线扩容 Ubuntu 根分区:从磁盘添加到逻辑卷扩展完整
linux·运维·ubuntu·磁盘空间扩展
乐维_lwops2 小时前
案例解读|运维监控助力某大型卷烟厂构建高效运维监控体系
运维·运维案例
JiaWen技术圈2 小时前
网站用户注册行为验证码方案
运维·安全
仙柒4152 小时前
Docker存储原理
运维·docker·容器
DolphinDB3 小时前
漫长人工,耗费存储?用 BackupRestore 模块一站式解决跨环境数据同步难题
运维·后端·架构
神奇椰子5 小时前
[特殊字符] 服务器搭建网站完整教程
运维·服务器
慧都小妮子5 小时前
告别看图抓数据:DeviceXPlorer OPC Server 助力数据自动化管理
运维·物联网·自动化·takebishi·dxpserver·opc server
Wpa.wk5 小时前
APP自动化-Appium环境安装
运维·appium·自动化
快乐的哈士奇5 小时前
LangFuse 自托管实战:选型理由、Docker 部署与常用配置全解析
运维·人工智能·docker·容器
数智化管理手记5 小时前
精益生产3步实操,让现场从混乱变标杆
大数据·运维·网络·人工智能·精益工程