当前位置: 首页 > news >正文

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

文章目录

    • 引言
    • 安装 Docker
    • Docker 基本概念
      • 1. 镜像(Images)
        • 示例:拉取并运行一个 Nginx 镜像
      • 2. 容器(Containers)
        • 示例:查看运行中的容器
      • 3. 仓库(Repository)
        • 示例:推送镜像到 Docker Hub
    • 容器的基本操作
      • 1. 创建容器
        • 示例:创建一个带有自定义内容的容器
      • 2. 进入容器
        • 示例:在运行中的容器中执行命令
      • 3. 停止和删除容器
        • 示例:停止和删除容器
    • 网络配置
      • 1. 创建自定义网络
        • 示例:创建一个自定义网络并运行容器
      • 2. 暴露端口
        • 示例:暴露容器端口
    • 数据卷的使用
      • 1. 创建数据卷
        • 示例:创建一个数据卷并挂载到容器
      • 2. 数据卷容器
        • 示例:使用数据卷容器进行数据共享
    • Docker Compose
      • 1. 编写 Docker Compose 文件
      • 2. 启动 Docker Compose
      • 3. 关闭 Docker Compose
    • 高级主题
      • 1. Docker Swarm
      • 2. Docker 插件
    • 总结

引言

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

安装 Docker

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

Docker 基本概念

1. 镜像(Images)

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

示例:拉取并运行一个 Nginx 镜像
# 拉取 Nginx 镜像
docker pull nginx# 运行 Nginx 容器
docker run -d -p 8080:80 --name mynginx nginx

2. 容器(Containers)

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

示例:查看运行中的容器
# 列出所有运行中的容器
docker ps

3. 仓库(Repository)

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

示例:推送镜像到 Docker Hub
# 登录 Docker Hub
docker login# 标记本地镜像
docker tag mynginx yourusername/mynginx# 推送镜像到 Docker Hub
docker push yourusername/mynginx

容器的基本操作

1. 创建容器

示例:创建一个带有自定义内容的容器
# 创建一个数据卷
docker volume create mydata# 运行容器并挂载数据卷
docker run -d -v mydata:/app --name mycontainer nginx

2. 进入容器

示例:在运行中的容器中执行命令
# 进入正在运行的容器
docker exec -it mycontainer bash# 在容器中执行命令
ls /app
exit

3. 停止和删除容器

示例:停止和删除容器
# 停止容器
docker stop mycontainer# 删除容器
docker rm mycontainer

网络配置

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

1. 创建自定义网络

示例:创建一个自定义网络并运行容器
# 创建自定义网络
docker network create mynetwork# 运行容器并加入自定义网络
docker run -d --name mycontainer --network mynetwork nginx

2. 暴露端口

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

数据卷的使用

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

1. 创建数据卷

示例:创建一个数据卷并挂载到容器
# 创建一个数据卷
docker volume create myvolume# 运行容器并挂载数据卷
docker run -d --name mycontainer -v myvolume:/app nginx

2. 数据卷容器

示例:使用数据卷容器进行数据共享
# 创建数据卷容器
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 的文件,定义你的应用服务:

version: '3'
services:web:image: nginxports:- "8080:80"app:image: myappports:- "5000:5000"

2. 启动 Docker Compose

运行以下命令启动 Docker Compose:

docker-compose up -d

3. 关闭 Docker Compose

运行以下命令停止 Docker Compose:

docker-compose down

高级主题

1. Docker Swarm

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

2. Docker 插件

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

总结

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

相关文章:

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

文章目录 引言安装 DockerDocker 基本概念1. 镜像(Images)示例:拉取并运行一个 Nginx 镜像 2. 容器(Containers)示例:查看运行中的容器 3. 仓库(Repository)示例:推送镜像…...

java 执行linux 命令

文章目录 前言一、linux命令执行二、使用步骤三、踩坑 前言 java 执行linux 命令; 本文模拟复制linux文件到指定文件夹后打zip包后返回zip名称,提供给下载接口下载zip; 一、linux命令执行 linux命令执行Process process Runtime.getRunti…...

ubuntu将本机的wifi网络通过网线分享给另一台机器(用于没有有线网络,重装系统后无wifi驱动或者另一台设备没有wifi网卡)

1.将两台机器通过网线连接 2.在pci ethernet中设置选择另一台机器的mac address,ipv4中选择share to other computer,另一台机器上设置为动态ip,连接上之后另一台机器即可上网。...

Docker + Jenkins + Gitee 自动化部署项目

1.简介 各位看官老爷,本文为Jenkins实战,注重实际过程,阅读完会有以下收获: 了解如何使用Docker安装Jenkins了解如何使用Jenkins部署maven项目了解如何使用JenkinsGitee实现自动化部署 2.Jenkins介绍 相信,正在读这…...

ChatGPT 应用开发(一)ChatGPT OpenAI API 免代理调用方式(通过 Cloudflare 的 AI Gateway)

前言 开发 ChatGPT 应用,我觉得最前置的点就是能使用 ChatGPT API 接口。首先我自己要能成功访问,这没问题,会魔法就可以本地调用。 那用户如何调用到我的应用 API 呢,我的理解是通过用户能访问到的中转服务器向 OpenAI 发起访问…...

【TC3xx】GETH

目录 一、RGMII 二、SMI接口 三、TC3xx MCAL 3.1 MCU 3.2 Port 3.3 DMA 3.4 中断配置 3.5 ETH 3.6 集成 一、RGMII TC3xx支持MII/RMII/RGMII三种以太网数据通信接口。其中RGMII经常用于MAC和MAC之间,或MAC与PHY之间的通信,RGMII的带宽可以是10M…...

不需要联网的ocr项目

地址 GitHub - plantree/ocr-pwa: A simple PWA for OCR, based on Tesseract. 协议 mit 界面 推荐理由 可以离线使用,隐私安全...

【Git使用总结】

Git使用总结 随着软件开发和团队协作的日益重要,Git作为一种强大的版本控制系统,已经成为了开发人员不可或缺的工具。本文将对Git的使用进行总结,以帮助读者更好地掌握Git的用法和技巧。 一、Git的基本概念 在开始使用Git之前,…...

仿照MyBatis手写一个持久层框架学习

首先数据准备,创建MySQL数据库mybatis,创建表并插入数据。 DROP TABLE IF EXISTS user_t; CREATE TABLE user_t ( id INT PRIMARY KEY, username VARCHAR ( 128 ) ); INSERT INTO user_t VALUES(1,Tom); INSERT INTO user_t VALUES(2,Jerry);JDBC API允…...

关东升老师极简系列丛书(由清华大学出版社出版)

极简系列丛书,编程学习新体验 在这个科技日新月异的时代,编程已经成为了一种必备技能。但是面对各种复杂的编程语言,你是否也曾感到过迷茫和困惑?由清华大学出版社出版的“极简系列丛书”就是为了帮助你解决这个问题。 这套丛书…...

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 27 章:如何避开和绕过所有人工智能内容检测器

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 27 章:如何避开和绕过所有人工智能内容检测器 使用高易错性和突发性方法 与人工智能生成的文本相比,人类写作往往具有更多的突发性,这是由于人类往往比人工智能生成的文…...

JavaWeb笔记之MySQL数据库

#Author 流云 #Version 1.0 一、引言 1.1 现有的数据存储方式有哪些? Java程序存储数据(变量、对象、数组、集合),数据保存在内存中,属于瞬时状态存储。 文件(File)存储数据,保存…...

Amazon CodeWhisperer 开箱初体验

文章作者:Coder9527 科技的进步日新月异,正当人工智能发展如火如荼的时候,各大厂商在“解放”码农的道路上不断创造出各种 Coding 利器,今天在下就带大家开箱体验一个 Coding 利器: Amazon CodeWhisperer。 亚马逊云科…...

Java的引用类型有几种?区别是什么?

Java中的引用类型主要分为四种:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。这些引用类型在Java中主要用于…...

掌握iText:轻松处理PDF文档-基础篇

关于iText iText是一个强大的PDF处理库,可以用于创建、读取和操作PDF文件。它支持PDF表单、加密和签署等操作,同时支持多种字体和编码。maven的中央仓库中的最新版本是5.X,且iText5不是完全免费的,但是基础能力是免费使用的&…...

小红书民宿文案怎么写?建议收藏

随着民宿市场的日益火爆,如何在众多民宿中脱颖而出,吸引更多租客入住,成为摆在每一位民宿业主面前的难题。一篇优质的小红书民宿文案,不仅能吸引潜在租客的关注,还能提高民宿的知名度。本文伯乐网络传媒将从八个方面教…...

C#教程(一):面向对象

1、介绍 C#是一种多范式编程语言,但其中一个主要的编程范式是面向对象编程(OOP)。面向对象编程有一些特点,而C#提供了丰富的功能来支持这些特点。 2、面向对象特点 封装(Encapsulation): 封装…...

Linux系统中部署minio服务、开启反向代理、二级域名SSL加固

链接: B站1小时-配置指导视频: 一、创建minio 文件目录(/project/minio) 二、下载Minio wget https://dl.min.io/server/minio/release/linux-amd64/minio 三、在minio目录中-创建日志文件 四、对minio(可以理解为windows系统中的.exe可执行文件) 进行授权 chmod 777 min…...

PMP备考总结:项目管理PMP考试提高通过率,轻松上岸~

分享一篇左羊学霸的备考总结,希望能帮到正在备考的友友们~ 前言 作为⼀名通过PMP项⽬管理认证并且拿到3A成绩 ( PMP认证最好成绩) 的 学习者, 来跟⼤家分享下我考取PMP证书的动机与过程 。考证不是主要⽬ 的, 在考证的过程深化⾃⼰的项⽬管理…...

shell脚本中获取当前脚本的绝对路径

说明: PWD 是获取当前脚本的执行路径的,下面的方式是获取文件绝对路径的。 话不多说,直接上硬货!!! #!/bin/bashecho "执行路径 $PWD"absolute_path$(readlink -f "$0") # 获取目录路径 directory$(dirname "$absolute_path&q…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...