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

相关推荐
weixin_453965002 小时前
[单master节点k8s部署]31.ceph分布式存储(二)
分布式·ceph·kubernetes
漫无目的行走的月亮3 小时前
在Docker中运行微服务注册中心Eureka
docker
大G哥5 小时前
记一次K8S 环境应用nginx stable-alpine 解析内部域名失败排查思路
运维·nginx·云原生·容器·kubernetes
妍妍的宝贝5 小时前
k8s 中微服务之 MetailLB 搭配 ingress-nginx 实现七层负载
nginx·微服务·kubernetes
大道归简6 小时前
Docker 命令从入门到入门:从 Windows 到容器的完美类比
windows·docker·容器
zeruns8026 小时前
如何搭建自己的域名邮箱服务器?Poste.io邮箱服务器搭建教程,Linux+Docker搭建邮件服务器的教程
linux·运维·服务器·docker·网站
爱跑步的程序员~6 小时前
Docker
docker·容器
福大大架构师每日一题7 小时前
23.1 k8s监控中标签relabel的应用和原理
java·容器·kubernetes
程序那点事儿7 小时前
k8s 之动态创建pv失败(踩坑)
云原生·容器·kubernetes
疯狂的大狗7 小时前
docker进入正在运行的容器,exit后的比较
运维·docker·容器