Docker 命令 K8S 共享卷

目录

镜像VS容器

docker常用命令

docker ps -a

docker images

docker build -t

docker run  

docker rm  {containerid}

docker rmi {imageid}

Docker Compose 服务编排

docker-compose 常用命令

K8S  Pod

Kubernetes 中的 Pod:

K8S共享卷

K8S跨Pod实现数据共享


镜像VS容器

容器是镜像的运行实例;

  1. 镜像(Image):

    • 镜像是一个只读的模板,它包含了运行容器所需的文件系统、运行时环境、库和设置等内容。你可以将镜像视为一个打包好的应用程序。
    • 镜像通常由 Dockerfile 定义,并通过 docker build 命令构建而成,也可以从 Docker Hub 等仓库中拉取已经构建好的镜像。
    • 镜像是一个静态的概念,一旦构建完成就不会改变,除非手动修改并重新构建。
  2. 容器(Container):

    • 容器是镜像的运行实例,它是一个独立的、隔离的执行环境,包含了运行时所需的应用程序、依赖项以及系统库等。
    • 当你使用 docker run 命令启动一个镜像时,Docker 将会创建一个新的容器实例,并基于镜像创建一个可写的文件系统层,然后在该文件系统层上启动应用程序。
    • 容器是一个动态的概念,可以启动、停止、重启和删除,容器的状态和数据都可以随着运行时的变化而变化。

镜像就像是一个软件的安装包,而容器就是通过安装包创建出来的运行实例。容器的创建是基于镜像的,镜像提供了容器运行所需的一切环境和依赖。容器之间相互隔离,各自拥有自己的文件系统、网络和进程空间,但它们可以共享同一个镜像。

docker常用命令

  1. 容器管理:(一般使用容器id比较少,主要还是会根据镜像进行管理)

    • docker ps:列出正在运行的容器。
    • docker ps -a:列出所有的容器,包括停止的。
    • docker start <container_id>:启动一个已停止的容器。
    • docker stop <container_id>:停止一个正在运行的容器。
    • docker restart <container_id>:重启一个容器。
    • docker exec -it <container_id> <command>:在运行的容器中执行命令。
    • docker logs <container_id>:查看容器的日志。
  2. 镜像管理:

    • docker images:列出本地所有的镜像。
    • docker pull <image_name>:从远程仓库拉取一个镜像到本地。
    • docker build -t <image_name> <path_to_Dockerfile>:构建一个镜像。
    • docker rmi <image_id>:删除一个本地镜像。
    • docker tag <source_image>:<tag> <target_image>:<tag>:给镜像打标签。
  3. 容器与镜像清理:

    • docker rm <container_id>:删除一个容器。
    • docker rmi <image_id>:删除一个镜像。
    • docker system prune:清理无用的容器、镜像和网络。
  4. 网络管理:

    • docker network ls:列出所有的网络。
    • docker network inspect <network_id>:查看一个网络的详细信息。
    • docker network create <network_name>:创建一个新的网络。
    • docker network connect <network_name> <container_id>:将一个容器连接到指定网络。
    • docker network disconnect <network_name> <container_id>:将一个容器从指定网络断开连接。
  5. 容器日志与状态查看:

    • docker logs <container_id>:查看容器的日志。
    • docker stats <container_id>:实时查看容器的资源使用情况。
    • docker inspect <container_id>:查看容器的详细信息。

docker ps -a

PS D:\Users\MaxZh\GolandProjects\msp-docker\ops-ump> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
18c8643646a8 ump "/bin/sh -c '/app/op…" 22 minutes ago Up 22 minutes 10024/tcp local
7875fd5465fb rigaga "/bin/sh -c '/app/op…" 54 minutes ago Up 54 minutes 10024/tcp local4
6d55985f2b5f rig "/bin/sh -c '/app/op…" 56 minutes ago Up 56 minutes 10099/tcp elated_davinciPS D:\Users\MaxZh\GolandProjects\msp-docker\ops-ump> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
18c8643646a8 ump "/bin/sh -c '/app/op…" 22 minutes ago Up 22 minutes 10024/tcp local
7875fd5465fb rigaga "/bin/sh -c '/app/op…" 54 minutes ago Up 54 minutes 10024/tcp local4
6d55985f2b5f rig "/bin/sh -c '/app/op…" 56 minutes ago Up 56 minutes 10099/tcp elated_davinci
da07cbf3a374 notify4g "/bin/sh -c '/app/op…" 57 minutes ago Exited (0) 57 minutes ago local3
13e70f59ce4c meta-server "/bin/sh -c '/app/me…" About an hour ago Exited (2) About an hour ago local2

docker images

PS D:\Users\MaxZh\GolandProjects\msp-docker\ops-ump> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ops-flume latest a25c32621bb8 About an hour ago 836MB
rigaga latest 779615793cf8 About an hour ago 358MB
rig latest bc9f4589dbda About an hour ago 376MB
notify4g latest ce5a72fa32b7 About an hour ago 350MB
notity latest ce5a72fa32b7 About an hour ago 350MB
meta-server latest 7f889ce1c03a About an hour ago 372MB
ump latest a3d9874d0351 3 hours ago 387MB

docker build -t <image_name> <path_to_Dockerfile>

PS D:\Users\MaxZh\GolandProjects\msp-docker\ops-notify4g> docker build -t notity .
[+] Building 2.7s (14/14) FINISHED docker:default=> [internal] load build definition from Dockerfile 0.0s=> => transferring dockerfile: 1.19kB 0.0s=> [internal] load metadata for docker.io/bitnami/minideb:bullseye 2.6s=> [internal] load .dockerignore 0.0s=> => transferring context: 2B 0.0s=> [internal] load build context 0.0s=> => transferring context: 135B 0.0s=> [base 1/4] FROM docker.io/bitnami/minideb:bullseye@sha256:d057a1eb3d4e14785d891b01127bbab7d0dbb0c50143151628552a3ac740b8c8 0.0s=> CACHED [base 2/4] RUN install_packages ca-certificates curl git krb5-user libbsd0 libbz2-1.0 libcdt5 libcgraph6 libcom-err2 li 0.0s=> CACHED [base 3/4] RUN mkdir -p /app 0.0s=> CACHED [base 4/4] WORKDIR /app 0.0s=> CACHED [stage-1 1/5] RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo "{TZ}" > /etc/timezone 0.0s=> CACHED [stage-1 2/5] COPY ./files/ops-notify4g.zip /app 0.0s=> CACHED [stage-1 3/5] COPY ./config/config.toml /app/ops-notify4g/config.toml 0.0s=> CACHED [stage-1 4/5] RUN unzip ops-notify4g.zip 0.0s=> CACHED [stage-1 5/5] WORKDIR /app/ops-notify4g 0.0s=> exporting to image 0.0s=> => exporting layers 0.0s=> => writing image sha256:ce5a72fa32b7c61f71801b9031e63af1cfac542c69457179df77d00e5b7411c2 0.0s=> => naming to docker.io/library/notity 0.0sView build details: docker-desktop://dashboard/build/default/default/jl4kq0wootou63etz1cgxka0gWhat's Next?View a summary of image vulnerabilities and recommendations → docker scout quickview

docker run  

docker run -d --name your_container_name your_image_name

docker run -v realfile:containerpath <其他选项> <镜像名称> 指定本地  

-v ==--volume ,将容器内的文件或目录映射到宿主机上的本地文件或目录,常用于映射配置文件运行镜像。本质会在容器的运行脚本中,增加如下映射配置:

PS D:\Users\MaxZh\GolandProjects\msp-docker\ops-rigaga> docker run -d --name local4 rigaga
7875fd5465fbcf1a4013322347377ccae394fd7783b314871277b5894f640759
PS D:\Users\MaxZh\GolandProjects\msp-docker\ops-rigaga>PS D:\Users\MaxZh\GolandProjects\msp-docker\ops-ump> docker run -v D:\Users\MaxZh\GolandProjects\msp-docker\ops-ump\configtest.yaml:/app/ops-ump/etc/config.yaml -d --name local ump
18c8643646a84f95714f179a4beccf1ce4f2e72f7d0ea11cce8f4e39c6ac3274
PS D:\Users\MaxZh\GolandProjects\msp-docker\ops-ump>"Mounts": [{"Type": "bind","Source": "D:\\Users\\MaxZh\\GolandProjects\\msp-docker\\ops-ump\\configtest.yaml","Destination": "/app/ops-ump/etc/config.yaml","Mode": "","RW": true,"Propagation": "rprivate"}],
同时image标签的hostconfig也会有binds生成
"HostConfig": {"Binds": ["D:\\Users\\MaxZh\\GolandProjects\\msp-docker\\ops-ump\\configtest.yaml:/app/ops-ump/etc/config.yaml"],

docker rm  {containerid}

docker rmi {imageid}

删除镜像之前必须先删除其关联的容器。因为容器是镜像的运行实例,如果有任何一个容器在使用某个镜像,那么该镜像就会被认为是被“占用”的,Docker 不会允许删除被使用的镜像。因此,在删除镜像之前,你需要先停止并删除使用该镜像的容器

#cmd steps
docker stop <container_id>
docker rm <container_id>
docker rmi <image_id>

Docker Compose 服务编排

Docker Compose 编排是针对容器的概念。Compose 允许你定义和管理多容器的 Docker 应用程序,通过一个单独的 YAML 文件来配置应用程序的服务。

在 Docker Compose 中,你可以定义一个或多个服务,每个服务对应一个容器。在 YAML 文件中,你可以指定服务的镜像、端口映射、环境变量、数据卷挂载等配置。然后,通过 docker-compose 命令启动、停止、管理这些服务,从而实现整个应用程序的编排。

eg.ABC三个服务,A 依赖B,C启动。docker compose 如下:

version: '3'
services:service_b:image: your_service_b_image# 这里定义 service_b 的配置service_c:image: your_service_c_image# 这里定义 service_c 的配置service_a:image: your_service_a_imagedepends_on:- service_b- service_c# 这里定义 service_a 的配置

eg.web 服务,启动依赖了ng web服务器和mysql db,启动web时,则可配置如下compose完成服务的编排依赖,compose up一起启动。

version: '3'
services:web:image: nginx:latestports:- "80:80"volumes:- ./web:/usr/share/nginx/htmldb:image: mysql:latestenvironment:MYSQL_ROOT_PASSWORD: exampleMYSQL_DATABASE: myappMYSQL_USER: userMYSQL_PASSWORD: passwordvolumes:- db_data:/var/lib/mysql
volumes:db_data:

docker-compose 常用命令

  1. docker-compose up

  2. docker-compose down

  3. docker-compose ps:列出正在运行的容器。

  4. docker-compose logs:查看容器的日志。

  5. docker-compose exec <service_name> <command>:在指定服务的容器内执行命令。

K8S  Pod

Kubernetes 中的 Pod:

  • Kubernetes 是一个用于自动部署、扩展和管理容器化应用程序的开源平台。
  • 在 Kubernetes 中,Pod 是最小的调度单元,它可以包含一个或多个容器,并共享网络和存储空间。
  • 一个 Pod 中的容器通常是紧密耦合的,它们共享相同的网络命名空间、IPC 命名空间和存储卷,可以通过 localhost 相互通信。

K8S共享卷

适用场景:同一个 Pod 中的多个容器之间共享数据的。

pod yaml配置方式:

在 Pod 的 YAML 文件中定义两个容器,并在配置容器中挂载共享卷(共享的文件地址)。确保共享卷被正确地挂载到两个容器中。

eg.如下分别定义两个container 容器, logger 和 reader,并配置volume共享shared-volume共享卷,同时shared-volume 挂载于/var/log/footstone/metrics path地址。即可保证两个服务对/var/log/footstone/metrics地址均可共享。

apiVersion: v1
kind: Pod
metadata:name: log-sharing-pod
spec:containers:- name: loggerimage: logger-imagevolumeMounts:- name: shared-volumemountPath: /var/log/footstone/metrics- name: readerimage: reader-imagevolumeMounts:- name: shared-volumemountPath: /var/log/footstone/metricsvolumes:- name: shared-volumeemptyDir: {}

K8S跨Pod实现数据共享

如果希望不同的 Pod 中的容器之间共享数据,可以考虑使用网络存储(如 NFS、GlusterFS、Ceph 等)或者对象存储(如 AWS S3、Google Cloud Storage 等)来实现数据的共享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/704711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cmake 构建Qt存在多个子项目的应用

概述&#xff1a;一般在开发UI应用时候我们都会存在多个子项目&#xff0c;比如一个是主UI界面的项目&#xff0c;有些动态库的项目&#xff0c;主UI中用到子项目中的动态库&#xff0c;我们来看看如何利用cmake来构建这样的一个工程&#xff0c;方便我们在跨平台中开发(macos、…

FullCalendar日历组件:进行任务增删改,参考gitee例子修改

效果 参考路径 zxj/FullCalendar开发示例 - 码云 - 开源中国 (gitee.com) 代码 主页面&#xff1a;index.php <?php ob_start(); include(includes/session.inc); ?> <!DOCTYPE html> <html><head><title>日程管理</title><meta …

python Matplotlib Tkinter-->tab切换3

环境 python:python-3.12.0-amd64 包: matplotlib 3.8.2 pillow 10.1.0 import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk import tkinter as tk import tkinter.messagebox as messagebox import …

this、闭包与作用域

this、闭包与作用域 this指针详解 函数的this关键字在JavaScript中的表现略有不同&#xff0c;此外&#xff0c;在严格模式和非严格模式之间也会有一些差别。在绝大多数情况下&#xff0c;函数的调用方式决定了this的值(运行时绑定)。 this关键字是函数运行时自动生成的一个内…

MySQL认证方法介绍

阅读本文之前请参阅----MySQL 数据库安装教程详解&#xff08;linux系统和windows系统&#xff09; MySQL数据库的认证方法对于确保数据安全和维护系统完整性至关重要。在MySQL中&#xff0c;有多种认证方法可供选择&#xff0c;每种方法都有其特定的用途和配置方式。本文将详细…

2024.1.9-1.24

2024.1.9 TUE 类路径 feign远程调用 content-service的test调用media-api的如下接口&#xff0c;用来上传图片 nginx的代理 如上图&#xff0c;proxy_pass 后面跟的代理到的地址后面须有/否则不生效&#xff01;&#xff01;&#xff01;&#xff01; content-service定义…

C++的发展历史、简介及应用

文章目录 一、C的来历及诞生背景二、C的每个版本时间三、C的详细应用领域 一、C的来历及诞生背景 C是一种编程语言&#xff0c;它是在C语言的基础上发展而来的。 C的作者&#xff1a;C的创始人是丹尼斯里奇&#xff08;Dennis Ritchie&#xff09;和贝尔实验室的团队。他们在2…

医学试纸条图像处理技术

医学试纸条图像处理是一个重要的领域&#xff0c;它涉及到从医学试纸条上提取和分析信息的各种技术。这里是一些常见的工作步骤&#xff1a; 一、图像预处理&#xff1a;在处理任何图像之前&#xff0c;通常需要进行预处理步骤&#xff0c;以改善图像质量并准备后续分析。这可…

ETH Denver见!来参加DAO的领袖和爱好者的活动吧

我们将和 DAOBase 在美国丹佛举办 DAO 领袖和爱好者的盛会——“去中心化对话&#xff1a;DAO 治理的新时代”活动&#xff01; 随着加密货币和区块链技术的快速发展&#xff0c;DAO 已成为数字经济不可或缺的一部分。目前&#xff0c;已有超过 10 万个 DAO&#xff0c;拥有超…

算法刷题 DAY60

647.回文子串 int countSubstrings(char* s) {int res0;int lenstrlen(s);bool dp[len][len];for(int i0;i<len;i){for(int j0;j<len;j){dp[i][j]false;}}for(int ilen-1;i>0;i--){for(int ji;j<len;j){if(s[i]s[j]){if(j-i<1){dp[i][j]true;res;}else {if(dp[…

Go语言必知必会100问题-05 接口污染

接口污染 在Go语言中&#xff0c;接口是我们设计和编写代码的基石。然而&#xff0c;像很多概念一样&#xff0c;滥用它是不好的。接口污染是指用不必要的抽象来编写代码&#xff08;刻意使用接口&#xff09;&#xff0c;使得代码更难以理解。这是具有不同习惯&#xff0c;特…

qt creator5.15.2用的是什么版本的图形api?

Qt Creator 5.15.2 使用的图形API取决于配置和目标平台。 Qt Creator是一个跨平台的集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要用于Qt应用程序的开发。它支持多种编译器和开发工具链&#xff0c;并且可以针对不同的平台和设备进行应用程序的编译和调试。在Qt 5…

Rust-windows安装环境

文章目录 前言一、Using rustup (Recommended)二、配置vscode解决办法&#xff1a;在终端依次运行如下两条指令&#xff1a; 总结 前言 Rust学习系列&#xff0c;之前介绍了macOS环境下的rust安装方式macOS rust安装。这篇学习windows的rust安装方式。 提示&#xff1a;以下是…

Cocoa Touch 框架及其步骤

Cocoa Touch 框架是 Apple 为 iOS 应用开发提供的一套原生开发工具包&#xff08;SDK&#xff09;&#xff0c;它包含了一系列用于构建 iOS 应用程序的 API 和服务。使用 Cocoa Touch 框架&#xff0c;开发者可以创建具有丰富用户界面和流畅交互体验的应用程序。 构建应用界面…

【STM32备忘录】【STM32WB系列的BLE低功耗蓝牙】一、测试广播配置搜不到信号的注意事项

文章目录 一、预备知识&#xff1a;二、准备工具&#xff1a;三、FUS和无线协议栈更新流程四、广播例程测试五、DEBUG输出调试 一、预备知识&#xff1a; WB系列是双核单片机&#xff0c;用户写M4&#xff0c;无线协议栈使用M0新买到手的单片机&#xff0c;需要自己刷入使用的…

TF-IDF,textRank,LSI_LDA 关键词提取

目录 任务 代码 keywordExtract.py TF_IDF.py LSI_LDA.py 结果 任务 用这三种方法提取关键词&#xff0c;代码目录如下&#xff0c; keywordExtract.py 为运行主程序 corpus.txt 为现有数据文档 其他文件&#xff0c;停用词&#xff0c;方法文件 corpus.txt 可以自己…

DP读书:《半导体物理学(第八版)》(一)绪论 3min速通

DP读书&#xff1a;《半导体物理学&#xff08;第八版&#xff09;》刘恩科 3min速通半导体物理之绪论 DP读书&#xff1a;《半导体物理学&#xff08;第八版&#xff09;》刘恩科绪论第一章 半导体中的电子状态1.1 半导体的晶格结构和结合性质1.1.1 金刚石型结构和共价键1.1.2…

代码随想录算法训练营day37 | 738.单调递增的数字、 968.监控二叉树

738.单调递增的数字 暴力超时&#xff0c;需要找到规律&#xff0c;比如98结果为89&#xff0c;214结果为199&#xff0c;从后向前遍历&#xff0c;如果i-1位>i位&#xff0c;则i-1位减一&#xff0c;后面其他位都改为9 class Solution:def monotoneIncreasingDigits(self…

探索未来:人工智能的前沿技术与应用

探索未来&#xff1a;人工智能的前沿技术与应用 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;作为一项前沿技术&#xff0c;正日益深入到我们的生活和工作中。在未来&#xff0c;人工智能将扮演着越来越重要的角色&#xff0c;影响着我们的社会、经…

Linux 内核和操作系统发行版的关系

目录 1. 查看当前&#xff08;Linux&#xff09;操作系统的内核版本 2. 查看当前&#xff08;Linux&#xff09;操作系统的发行版本 2.1. 典例 3. 内核和操作系统的关系&#xff1f; 4.参考 1. 查看当前&#xff08;Linux&#xff09;操作系统的内核版本 uname -r 系统将…