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="[email protected]"

# 安装依赖包
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
相关推荐
东方未明010822 分钟前
docker(一)前言:高并发服务端技术架构的演进
docker·性能优化·高并发·虚拟化·容器化
Hfc.3 小时前
docker-daemon.json
docker·容器·json
和计算机搏斗的每一天3 小时前
k8s之探针
云原生·容器·kubernetes
水银嘻嘻5 小时前
web 自动化之 KDT 关键字驱动详解
运维·自动化
Vone_666 小时前
node.js 邮箱验证服务器搭建
运维·服务器·node.js
丢丢丢丢丢丢~6 小时前
apache2的默认html修改
linux·运维·服务器
wusam6 小时前
Linux系统管理与编程20:Apache
linux·运维·服务器·apache·shell编程
ChironW7 小时前
Ubuntu 24.04 LTS系统上配置国内时间同步
linux·运维·服务器·ubuntu
TPBoreas7 小时前
排查服务器内存空间预警思路
运维·服务器