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 的强大之处在于其轻量级、灵活性和可移植性,它为开发者提供了一种便捷的方式

相关推荐
云攀登者-望正茂1 小时前
AKS 支持 Kata Container容器沙盒 -预览阶段
容器·azure
撸码到无法自拔4 小时前
docker常见命令
java·spring cloud·docker·容器·eureka
小马爱打代码5 小时前
K8S - GitLab CI 自动化构建镜像入门
ci/cd·kubernetes·gitlab
hi,编程哥8 小时前
Docker、ECS 与 K8s 网段冲突:解决跨服务通信中的路由问题
docker·容器·kubernetes
How_doyou_do8 小时前
项目全栈实战-基于智能体、工作流、API模块化Docker集成的创业分析平台
运维·docker·容器
Cloud Traveler11 小时前
Kubernetes vs. OpenShift:深入比较与架构解析
架构·kubernetes·openshift
是垚不是土12 小时前
探秘高可用负载均衡集群:企业网络架构的稳固基石
运维·服务器·网络·云原生·容器·架构·负载均衡
杰克逊的日记12 小时前
大规模k8s集群怎么规划
云原生·容器·kubernetes
luck_me512 小时前
K8S已经成为了Ai应用运行的平台工具
人工智能·容器·kubernetes
xbd_zc13 小时前
【Jenkins简单自动化部署案例:基于Docker和Harbor的自动化部署流程记录】
docker·自动化·jenkins·harbor