K8S学习指南(2)-docker的基本使用

文章目录

引言

Docker 是一款开源的容器化平台,允许开发者将应用程序及其依赖项打包为一个轻量级、可移植的容器。这种容器化技术使得应用程序在不同环境中能够更加一致、可靠地运行。本教程将深入介绍 Docker 的使用方法,包括容器的创建、管理、网络配置、数据卷使用以及 Docker Compose 的应用。

安装 Docker

在开始使用 Docker 之前,首先需要在相应的操作系统上安装 Docker。你可以按照上一篇教程中提到的步骤在 Windows、Ubuntu 和 CentOS 等操作系统上完成安装。安装完成后,我们可以开始学习 Docker 的基本使用。

Docker 基本概念

1. 镜像(Images)

Docker 镜像是一个轻量级、独立、可执行的软件包,包含运行某个应用所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

示例:拉取并运行一个 Nginx 镜像
bash 复制代码
# 拉取 Nginx 镜像
docker pull nginx

# 运行 Nginx 容器
docker run -d -p 8080:80 --name mynginx nginx

2. 容器(Containers)

Docker 容器是 Docker 镜像的运行实例。容器包含了应用程序及其依赖项,能够在任何环境中运行。

示例:查看运行中的容器
bash 复制代码
# 列出所有运行中的容器
docker ps

3. 仓库(Repository)

Docker 仓库是用于存储和分享 Docker 镜像的地方。官方仓库是 Docker Hub,你也可以使用私有仓库。

示例:推送镜像到 Docker Hub
bash 复制代码
# 登录 Docker Hub
docker login

# 标记本地镜像
docker tag mynginx yourusername/mynginx

# 推送镜像到 Docker Hub
docker push yourusername/mynginx

容器的基本操作

1. 创建容器

示例:创建一个带有自定义内容的容器
bash 复制代码
# 创建一个数据卷
docker volume create mydata

# 运行容器并挂载数据卷
docker run -d -v mydata:/app --name mycontainer nginx

2. 进入容器

示例:在运行中的容器中执行命令
bash 复制代码
# 进入正在运行的容器
docker exec -it mycontainer bash

# 在容器中执行命令
ls /app
exit

3. 停止和删除容器

示例:停止和删除容器
bash 复制代码
# 停止容器
docker stop mycontainer

# 删除容器
docker rm mycontainer

网络配置

Docker 允许你自定义容器的网络设置,包括使用不同的网络模式、暴露端口等。

1. 创建自定义网络

示例:创建一个自定义网络并运行容器
bash 复制代码
# 创建自定义网络
docker network create mynetwork

# 运行容器并加入自定义网络
docker run -d --name mycontainer --network mynetwork nginx

2. 暴露端口

示例:暴露容器端口
bash 复制代码
# 运行容器并映射主机端口到容器端口
docker run -d -p 8080:80 --name mynginx nginx

数据卷的使用

Docker 数据卷允许容器之间共享数据,并且数据在容器之间持久化存储。

1. 创建数据卷

示例:创建一个数据卷并挂载到容器
bash 复制代码
# 创建一个数据卷
docker volume create myvolume

# 运行容器并挂载数据卷
docker run -d --name mycontainer -v myvolume:/app nginx

2. 数据卷容器

示例:使用数据卷容器进行数据共享
bash 复制代码
# 创建数据卷容器
docker run -d --name datavolume -v /data busybox

# 运行应用容器并挂载数据卷容器
docker run -d --volumes-from datavolume --name appcontainer nginx

Docker Compose

Docker Compose 允许你使用 YAML 文件定义和运行多个容器,简化多容器应用的管理。

1. 编写 Docker Compose 文件

创建一个名为 docker-compose.yml 的文件,定义你的应用服务:

yaml 复制代码
version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  app:
    image: myapp
    ports:
      - "5000:5000"

2. 启动 Docker Compose

运行以下命令启动 Docker Compose:

bash 复制代码
docker-compose up -d

3. 关闭 Docker Compose

运行以下命令停止 Docker Compose:

bash 复制代码
docker-compose down

高级主题

1. Docker Swarm

Docker Swarm 允许你将多个 Docker 主机组成一个集群,实现容器的高可用性和负载均衡。

2. Docker 插件

Docker 插件允许你扩展 Docker 功能,例如存储驱动程序、网络驱动程序等。

总结

通过这份 Docker 使用教程,你应该已经学会了 Docker 的基本概念、容器的基本操作、网络配置、数据卷的使用、Docker Compose 的应用,以及一些高级主题。Docker 的强大之处在于其轻量级、灵活性和可移植性,它为开发者提供了一种便捷的方式

相关推荐
2401_8401922726 分钟前
什么是ingress?
docker·容器·kubernetes
攀小黑2 小时前
docker 容器内nacos(若依plus打包)连接另一台内网服务器显示数据库连接失败
服务器·数据库·docker
晚风 -2 小时前
idea中Docker一键自动化部署
docker·容器·自动化
Hilaku3 小时前
前端开发,真的有必要学Docker吗?
前端·javascript·docker
Java陈序员4 小时前
代码检测器!一款专门揭露屎山代码的质量分析工具!
docker·go
落日漫游4 小时前
ArgoCD与Helm:云原生部署对比解析
java·容器·kubernetes
不爱笑的良田5 小时前
从零开始的云原生之旅(十):HPA 完全指南:从原理到实践
云原生·容器·kubernetes
不爱笑的良田5 小时前
从零开始的云原生之旅(九):云原生的核心优势:自动弹性伸缩实战
云原生·容器·kubernetes·go
lijun_xiao20095 小时前
DevOps(devops/k8s/docker/Linux)学习笔记-2
docker·kubernetes·devops
pedestrian_h7 小时前
docker快速上手笔记
笔记·docker·容器