Docker 从零开始掌握容器化技术

news/2025/1/31 20:19:01/

Docker 初学者指南:从零开始掌握容器化技术

引言

Docker 是一个强大的工具,可以帮助开发者轻松地创建、部署和运行应用程序。对于初学者来说,Docker 可能看起来有些复杂,但一旦掌握了基本概念和操作,你会发现它非常直观和实用。本文将带你从零开始,逐步了解 Docker 的基本概念和操作,并通过详细的示例帮助你快速上手。

什么是 Docker?

Docker 是一个开源平台,用于自动化应用的部署、扩展和管理。它通过容器化技术,将应用及其依赖项打包在一个轻量级、可移植的容器中。这使得应用可以在任何支持 Docker 的环境中运行,而无需担心环境差异带来的问题。

Docker 的核心概念

1. 镜像(Image)

Docker 镜像是一个只读模板,包含了运行应用所需的代码、库和依赖项。镜像是容器的基础。你可以将镜像看作是一个应用程序的“快照”,它包含了运行该应用程序所需的一切。

2. 容器(Container)

容器是镜像的运行实例。每个容器都是独立且隔离的,拥有自己的文件系统、网络和进程空间。你可以将容器看作是一个轻量级的虚拟机,但它比虚拟机更加高效和快速。

3. 仓库(Repository)

Docker 仓库用于存储和分发 Docker 镜像。公共仓库如 Docker Hub 提供了大量的官方和社区镜像。你可以从仓库中拉取镜像到本地,也可以将你自己创建的镜像推送到仓库中。

安装 Docker

在开始使用 Docker 之前,你需要在你的计算机上安装 Docker。Docker 提供了详细的安装指南,支持多种操作系统,包括 Linux、Windows 和 macOS。

Windows 和 macOS

  1. 访问 Docker 官方网站(https://www.docker.com/)。
  2. 下载 Docker Desktop 安装程序。
  3. 按照安装向导进行安装。

Linux

在 Linux 上安装 Docker 的步骤因发行版而异。以下是在 Ubuntu 上安装 Docker 的步骤:

  1. 更新包管理器:

    sudo apt-get update
    
  2. 安装 Docker:

    sudo apt-get install docker.io
    
  3. 启动 Docker 服务:

    sudo systemctl start docker
    
  4. 设置 Docker 开机自启:

    sudo systemctl enable docker
    

安装完成后,可以通过以下命令验证 Docker 是否安装成功:

docker --version

第一个 Docker 容器

1. 拉取镜像

Docker Hub 上有许多官方和社区维护的镜像。你可以使用 docker pull 命令拉取一个镜像到本地。例如,拉取一个 Ubuntu 镜像:

docker pull ubuntu

2. 运行容器

使用 docker run 命令启动一个容器。以下命令将启动一个 Ubuntu 容器并进入其交互式 shell:

docker run -it ubuntu /bin/bash

容器内,你可以像在普通的 Ubuntu 系统中一样执行命令。退出容器时,可以使用 exit 命令。

3. 查看容器

使用 docker ps 命令查看当前正在运行的容器

docker ps

要查看所有容器(包括已停止的),可以使用 docker ps -a

创建自定义镜像

1. 编写 Dockerfile

Dockerfile 是一个文本文件,包含了一系列指令,用于定义如何构建 Docker 镜像。以下是一个简单的 Dockerfile 示例,用于创建一个包含 Python 3 的镜像:

dockerfile">FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3
COPY . /app
WORKDIR /app
CMD ["python3", "app.py"]

2. 构建镜像

在 Dockerfile 所在的目录中,使用 docker build 命令构建镜像:

docker build -t my-python-app .

3. 运行自定义镜像

构建完成后,可以使用 docker run 命令启动容器

docker run -d -p 4000:80 my-python-app

常用 Docker 命令

实际应用示例

1. 运行一个 Web 服务器

你可以使用 Docker 快速启动一个 Nginx Web 服务器:

docker run -d -p 8080:80 nginx

访问 http://localhost:8080,你将看到 Nginx 的欢迎页面。

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

Docker Compose 是一个工具,用于定义和运行多容器 Docker 应用。通过一个 docker-compose.yml 文件,你可以定义多个服务、网络和卷。以下是一个简单的 docker-compose.yml 示例:

version: '3'
services:web:image: nginxports:- "8080:80"db:image: mysqlenvironment:MYSQL_ROOT_PASSWORD: example

使用以下命令启动服务:

docker-compose up -d

结语

通过本文的介绍,你应该已经对 Docker 有了基本的了解,并能够运行和管理简单的容器。Docker 是一个非常强大的工具,随着你对它的深入了解,你会发现它在开发、测试和部署中的广泛应用。继续探索 Docker 的更多功能,提升你的开发效率吧!


如果你有任何问题或需要进一步的帮助,欢迎在评论区留言讨论!


http://www.ppmy.cn/news/1568227.html

相关文章

嵌入式MCU面试笔记2

目录 串口通信 概论 原理 配置 HAL库代码 1. 初始化函数 2. 数据发送和接收函数 3. 中断和DMA函数 4. 中断服务函数 串口通信 概论 我们知道,通信桥接了两个设备之间的交流。一个经典的例子就是使用串口通信交换上位机和单片机之间的数据。 比较常见的串…

hdfs:介绍三个脚本

1、jps-cluster.sh 如果我们想在Bigdata01 这台电脑上,查看整个集群的服务启动情况,可以使用这个脚本文件。 #!/bin/bash USAGE"使⽤⽅法:sh jps-cluster.sh" NODES("bigdata01" "bigdata02" "bigdata03…

PYH与MAC的桥梁MII/MIIM

在学习车载互联网时,看到了一句话,Processor通过DMA直接存储访问与MAC之间进行数据的交互,MAC通过MII介质无关接口与PHY之间进行数据的交互。常见的以太网硬件结构是,将MAC集成进Processor芯片,将PHY留在Processor片外…

sem_init的概念和使用案例

sem_init 是 POSIX 线程库中用于初始化未命名信号量&#xff08;unnamed semaphore&#xff09;的函数&#xff0c;常用于多线程或多进程间的同步。以下是其概念和使用案例的详细说明&#xff1a; 概念 函数原型&#xff1a; #include <semaphore.h>int sem_init(sem_t …

服务器机房迁移,centos系统root无法登录,也无法联网等问题

介绍 服务器迁移之后问题太多了&#xff0c;就关了一次机而已。开机之后root也没法登录&#xff0c;网络也无法访问。这个问题我们整整修复了两天两夜。废话不多说了。过程就不记录了&#xff0c;直接写方法&#xff0c;以免下次再遇到此问题。 问题记录 root账号无法登录 …

JavaScript系列(43)--依赖注入系统实现详解

JavaScript依赖注入系统实现详解 &#x1f489; 今天&#xff0c;让我们深入探讨JavaScript的依赖注入系统实现。依赖注入是一种设计模式&#xff0c;它通过将依赖关系的创建和管理从代码中分离出来&#xff0c;提高了代码的可维护性和可测试性。 依赖注入基础概念 &#x1f…

TVS选型设计

TVS选型距离 以实际的案例举例。电路的正常工作电压VCC是24V&#xff0c;最高工作电压Vmax是26V,后级电路可承受的最高瞬态电压为50V&#xff0c;实验的测试波形为 8/20μs波形&#xff0c;测试电压500V&#xff0c;测试电源内阻及PPTC的静态电阻合计为2Ω。根据上述信息选择合…

【SpringMVC】——Json数据交互处理

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大二学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…