温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Docker基础入门以及示例分析

发布时间:2021-10-12 09:36:17 阅读:125 作者:柒染 栏目:云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

Docker基础入门以及示例分析

目录

  1. 什么是Docker?
  2. Docker的核心概念
  3. Docker的安装与配置
  4. Docker的基本操作
  5. Docker Compose
  6. Docker网络与存储
  7. Docker的实战示例
  8. 总结

什么是Docker?

Docker是一个开源的容器化平台,允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。容器可以在任何支持Docker的环境中运行,确保了应用程序在不同环境中的一致性。

Docker的核心思想是通过容器化技术,将应用程序与其运行环境隔离开来,从而解决了“在我机器上能运行,但在你的机器上不能运行”的问题。Docker容器与虚拟机不同,它们共享宿主机的操作系统内核,因此更加轻量级和高效。

Docker的核心概念

镜像(Image)

Docker镜像是一个只读的模板,包含了运行应用程序所需的所有文件和依赖。镜像可以看作是容器的“蓝图”,容器是基于镜像创建的实例。

镜像可以通过Dockerfile来构建,Dockerfile是一个文本文件,包含了一系列指令,用于定义如何构建镜像。例如,一个简单的Dockerfile可能包含以下内容:

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

容器(Container)

容器是Docker镜像的运行实例。容器是轻量级的、独立的、可执行的软件包,包含了运行应用程序所需的所有内容:代码、运行时、系统工具、系统库等。

容器与虚拟机不同,它们共享宿主机的操作系统内核,因此启动速度更快,资源占用更少。每个容器都是相互隔离的,拥有自己的文件系统、网络和进程空间。

仓库(Repository)

Docker仓库是用于存储和分发Docker镜像的地方。Docker Hub是Docker官方的公共仓库,包含了大量的官方和社区维护的镜像。用户也可以搭建私有的Docker仓库,用于存储和分发自己的镜像。

Docker的安装与配置

在Linux上安装Docker

在Linux上安装Docker通常非常简单。以下是在Ubuntu 20.04上安装Docker的步骤:

  1. 更新包索引并安装依赖:
   sudo apt-get update
   sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
  1. 添加Docker的官方GPG密钥:
   curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. 添加Docker的APT仓库:
   sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  1. 更新包索引并安装Docker:
   sudo apt-get update
   sudo apt-get install docker-ce
  1. 验证Docker是否安装成功:
   sudo docker --version

在Windows上安装Docker

在Windows上安装Docker需要启用Hyper-V和WSL 2(Windows Subsystem for Linux 2)。以下是安装步骤:

  1. 下载Docker Desktop安装程序:Docker Desktop for Windows

  2. 运行安装程序并按照提示完成安装。

  3. 安装完成后,启动Docker Desktop并等待Docker引擎启动。

  4. 验证Docker是否安装成功:

   docker --version

在macOS上安装Docker

在macOS上安装Docker也非常简单。以下是安装步骤:

  1. 下载Docker Desktop安装程序:Docker Desktop for Mac

  2. 运行安装程序并将Docker图标拖到Applications文件夹中。

  3. 启动Docker Desktop并等待Docker引擎启动。

  4. 验证Docker是否安装成功:

   docker --version

Docker的基本操作

拉取镜像

要从Docker Hub拉取一个镜像,可以使用docker pull命令。例如,拉取Ubuntu 20.04镜像:

docker pull ubuntu:20.04

运行容器

使用docker run命令可以基于镜像创建并启动一个容器。例如,运行一个Ubuntu 20.04容器并进入交互式终端:

docker run -it ubuntu:20.04 /bin/bash

查看容器

要查看正在运行的容器,可以使用docker ps命令。要查看所有容器(包括已停止的),可以使用docker ps -a命令。

docker ps
docker ps -a

停止和删除容器

要停止一个正在运行的容器,可以使用docker stop命令,后跟容器ID或名称:

docker stop <container_id>

要删除一个已停止的容器,可以使用docker rm命令:

docker rm <container_id>

构建自定义镜像

要构建自定义镜像,首先需要创建一个Dockerfile。例如,以下是一个简单的Dockerfile,用于构建一个包含Python 3的Ubuntu镜像:

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

然后,使用docker build命令构建镜像:

docker build -t my-python-app .

Docker Compose

什么是Docker Compose?

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过一个YAML文件(通常命名为docker-compose.yml),可以定义多个服务、网络和卷,并使用一个命令启动所有服务。

使用Docker Compose管理多容器应用

以下是一个简单的docker-compose.yml文件示例,用于定义一个包含Web应用和数据库的多容器应用:

version: '3'
services:
  web:
    image: my-python-app
    ports:
      - "5000:5000"
    depends_on:
      - db
  db:
    image: postgres:13
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb

使用docker-compose up命令启动所有服务:

docker-compose up

Docker网络与存储

Docker网络

Docker提供了多种网络模式,用于容器之间的通信。默认情况下,Docker使用bridge网络模式,每个容器都分配了一个独立的IP地址,并且可以通过容器名称进行通信。

要查看Docker网络,可以使用docker network ls命令:

docker network ls

Docker存储

Docker提供了多种存储选项,用于管理容器的数据。默认情况下,容器的文件系统是临时的,容器停止后数据会丢失。为了持久化数据,可以使用Docker卷(Volume)或绑定挂载(Bind Mount)。

要创建一个Docker卷,可以使用docker volume create命令:

docker volume create my_volume

然后,在运行容器时挂载该卷:

docker run -v my_volume:/data ubuntu:20.04

Docker的实战示例

示例1:运行一个简单的Web应用

假设我们有一个简单的Python Web应用,代码如下:

# app.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, Docker!"

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

我们可以使用以下Dockerfile来构建镜像:

FROM python:3.8-slim
WORKDIR /app
COPY . /app
RUN pip install flask
CMD ["python", "app.py"]

构建并运行容器:

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

访问http://localhost:5000,你将看到“Hello, Docker!”的消息。

示例2:使用Docker Compose部署多服务应用

假设我们有一个包含Web应用和数据库的多服务应用。我们可以使用以下docker-compose.yml文件来定义和启动服务:

version: '3'
services:
  web:
    image: my-flask-app
    ports:
      - "5000:5000"
    depends_on:
      - db
  db:
    image: postgres:13
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb

使用docker-compose up命令启动服务:

docker-compose up

访问http://localhost:5000,你将看到Web应用正常运行,并且能够与数据库进行交互。

总结

Docker是一个强大的容器化平台,能够帮助开发者轻松地打包、分发和运行应用程序。通过Docker,开发者可以确保应用程序在不同环境中的一致性,并且能够快速部署和扩展应用。

本文介绍了Docker的基础概念、安装与配置、基本操作、Docker Compose、网络与存储等内容,并通过两个实战示例展示了如何使用Docker运行简单的Web应用和多服务应用。希望本文能够帮助你快速入门Docker,并在实际项目中应用这些知识。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/u/567328/blog/860274

AI

开发者交流群×