docker 续 常用命令

news2024/11/14 4:02:20

ubuntu里的仓库文件使用不了的解决方法:

1.进入仓库文件的目录

cd /etc/apt/sources.list.d/

2.删除 archive开头的文件

sudo  rm  -rf  archive*

3.重新下载仓库文件

 sudo add-apt-repository    "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/  $(lsb_release -cs)  stable"

4.安装docker

sudo apt-get install docker-ce docker-ce-cli containerd.io

apt

apt-get  软件管理的命令  =  centos里的yum


feng@sc:~$ cd /etc/apt

feng@sc:/etc/apt$ ls

apt.conf.d   keyrings       preferences.d.save  sources.list.d  trusted.gpg.d

auth.conf.d  preferences.d  sources.list        trusted.gpg

feng@sc:/etc/apt$


/etc/apt/sources.list.d  等同于   /etc/yum.repos.d    都是用来存放仓库文件

[root@docker ~]# docker exec -it sc-nginx-2  bash 进入一个容器内部

root@6f864a3ab3e3:/# exit

启动一个nginx容器,修改nginxd网站的首页

[root@docker ~]# docker  run   -d   -p 8080:80  --name  sc-caojie-1  nginx

6193c1726aefd5929d46da7bdf668d9ed7069d5587ccc289e81aae0ec0739224

将文件从容器里拷贝出来到宿主机

[root@docker ~]# docker cp sc-caojie-1:/usr/share/nginx/html/index.html   .

Successfully copied 2.56kB to /root/.

[root@docker ~]# ls

anaconda-ks.cfg  index.html  mysql-5-7-41.tar  nginx.tar

修改首页文件index.html

[root@docker ~]# vim index.html

拷贝宿主机的文件到容器里

[root@docker ~]# docker cp index.html  sc-caojie-1:/usr/share/nginx/html/index.html

Successfully copied 2.56kB to sc-caojie-1:/usr/share/nginx/html/index.html

1.docker logs  排错

只要重启docker服务,会导致所有正在运行的容器停止运行,进入exited状态

2.挂起虚拟机,关闭了真实笔记本电脑,第2天开机,恢复虚拟机到访问不了容器里的网站

       service  docker  restart

       docker start  sc-nginx-1

[root@docker ~]# docker stats  查看容器资源消耗

CONTAINER ID   NAME          CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS

6193c1726aef   sc-caojie-1   0.00%  2.43MiB / 3.682GiB  0.06%   9.02kB / 8.2kB   1.3MB / 22.5kB   3

6f864a3ab3e3   sc-nginx-2    0.00%   3.402MiB / 3.682GiB   0.09%  764B / 0B   3.44MB / 0B     3

[root@docker ~]# free -m  以MB为单位显示

              total        used        free      shared  buff/cache   available

Mem:         3770         365        2771          11         633        3178

Swap:          3967           0        3967

Mem 开头的行,显示的真实的内存的信息---》内存条的大小

shared 表示共享内存消耗的空间---》已经使用的

buffer: 数据  内存---》磁盘   

cache:  数据  磁盘 ---》内存

       buffer和cache 都是临时存放数据的地方,消耗的是内存的空间

available : 可以使用的空间,内核给后面的进程分配内存空间的时候,可以继续使用的内存空间

total = used + free + shared + buff/cache

available = free + buff/cache还没有使用完的或者释放了的空间

如果一个容器里的进程消耗的cpu或者内存超过限制 会被docker软件重启

当容器里进程运行达到限制时 容器里运行的进程会被kill掉 防止容器被kill掉

启动一个nginx容器,限制容器使用cpu资源 20%  内存只能使用200M

--cpu-shares  可以使用的cpu算力的份额

 --cpus  可以使用的cpu核心的数量

 --cpuset-cpus  指定在哪些cpu里运行

 -m 指定使用的内存的大小,默认是字节为单位

[root@docker ~]#  docker  run  -d  -p 8090:80  --name sc-pansl-1  --cpu-shares 200  --cpus 2 --cpuset-cpus 0,1 -m 200000000  nginx

daedbb9c7ce5d99ef5019d49ec8c8134fc51e4ef4009c48cd6faf0dbd0ff606d

[root@docker ~]# docker ps

CONTAINER ID   IMAGE     COMMAND                   CREATED         STATUS         PORTS                                   NAMES

daedbb9c7ce5   nginx     "/docker-entrypoint.…"   4 seconds ago   Up 3 seconds   0.0.0.0:8090->80/tcp, :::8090->80/tcp   sc-pansl-1

docker 和虚拟机的区别

       有共同点: 都是虚拟化技术

       区别:

              1.架构:隔离性

              2.资源消耗: cpu、内存、磁盘等

              3.启动速度

              4.扩展性

        5.层次:虚拟机多封装一层hy

docker缺点: app隔离没有虚拟机彻底 安全性低

docker优点: 启动速度快 资源消耗小 扩展方便

每个容器里都有一个微型的操作系统,但是操作系统里的内核是使用宿主机的内核

操作系统组成:

       1.内核: 内部最核心的软件

       2.库 应用程序 .shell 系统调用

docker 2个非常重要的技术是linux内核提供的:

       namespace 命名空间: 将容器隔离 资源隔离    是内核对进程进行隔离

                    有多少种命名空间: network、pid、IPC、user、mount、UTS 6种

       cgroup: control group--》控制资源组合,限制容器可以使用多少cpu、内存、磁盘IO、网络IO等资源的   限制进程可以使用的cpu、内存、磁盘IO、网络IO资源

四种网络设置

[root@docker sanchuang]# docker network ls

NETWORK ID     NAME      DRIVER    SCOPE

e250fbc2b802   bridge    bridge    local

2d7e5f5faf77   host      host      local

81b54e63a61c   none      null      local

bridge 是默认的容器网络类型,可以和宿主机的docker0接口相连,通信

docker network create  sc 创建一个sc的网络,类型为桥接bridge

121626761e6ff8ac52d4e47d3a1785c44c1d8a273715aa74586777b27a36ee72

[root@docker sanchuang]# docker network ls

NETWORK ID     NAME      DRIVER    SCOPE

e250fbc2b802   bridge    bridge    local

2d7e5f5faf77   host      host      local

81b54e63a61c   none      null      local

121626761e6f   sc        bridge    local

新建一个容器使用sc网络

[root@docker]# docker  run  -d  -p 8082:80  --name fanzl-1  --network sc  nginx

009a177040011bbe8a21ecdf7a1dfe0f2a43eaefd796027ae1f37fadd56e2600

[root@docker sanchuang]# docker  inspect fanzl-1

                    "Gateway": "172.18.0.1",

                    "IPAddress": "172.18.0.2",

                    "DriverOpts": null,

                    "DNSNames": [

                        "fanzl-1",

总结:

       1.网络类型:  bridge(默认)、host(网络性能好)、null(禁用所有网络)、container(很多容器共享一个ip)、overlay(连接不同机器上的docker容器 允许不同机器上容器相互通信 跨主机通信)

       2.docker底层技术

                     namespace: 隔离

                     cgroup:  限制资源(cpu、内存、磁盘IO、网络IO)

                                   概念: 子系统---》进程

1.创建一个bridge类型的网络叫changsha

docker network create changsha
2.启动一个mysql容器,限制它只能使用50%的cpu,能使用2G的内存,使用changsha网络,宿主机端口是3309  容器是3306 ,名字可以自己定义,密码自己定义

docker run -d -p 3309:3306 --name cs --network changsha --cpu-shares 500 --cpus 2 --cpuset-cpus 0,1 -m 200000000 -e MYSQL_ROOT_PASSWORD='sc@123456' mysql:5.7.41
3.去了解cgroup的v1版本和v2版本的差异

Cgroups v1 在 Linux 内核 2.6.24 版本中引入,其设计目的是为了提供对系统资源的分层次管理。在 v1 中,各种资源控制器(如 CPU、memory、blkio 等)被单独管理,每个控制器都有自己的层级树,这意味着对于每个资源类型,你都需要分别设置和管理 cgroup。例如,你可以有一个用于限制 CPU 使用率的 cgroup,另一个用于限制内存使用的 cgroup。

Cgroups v1 的主要特点包括:

  • 多个层级树:每个资源控制器有自己的层级树。
  • 独立管理:每个控制器必须单独配置,不能全局统一设置。
  • 复杂性:管理多个控制器可能会导致配置复杂度增加。

Cgroups v2

Cgroups v2 在 Linux 内核 4.5 版本中首次出现,旨在解决 v1 的一些限制,提供一个统一的层次结构来管理所有资源控制器。在 v2 中,所有资源控制器都被整合进一个单一的层级树,这简化了资源管理和隔离的过程。

Cgroups v2 的主要改进包括:

单一的层级树:所有资源控制器共享同一棵树,简化了配置和管理。

统一的接口:提供了一个统一的接口来管理所有的资源控制器,减少了复杂性。

  • 扩展性:支持更多的资源控制器和特性,如命名空间、设备访问控制等。
  • 默认启用:在较新的 Linux 发行版中,Cgroups v2 通常是默认启用的。
    5.如何容器启动不成功,如何去排查问题出在哪里?
  • 检查 Docker 日志 docker logs
  • 看容器状态 docker inspect
  • 检查镜像是否正确 docke images
  • 看系统资源是否足够供容器使用
  • 尝试重启

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

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

相关文章

学术研讨 | 基于区块链的隐私计算与数据可信流通研讨会顺利召开

近日,由国家区块链技术创新中心组织的“基于区块链的隐私计算与数据可信流通研讨会”顺利召开,会议邀请了来自全国高校和科研院所的相关领域专家,围绕基于区块链与隐私计算技术的应用需求、研究现状、发展趋势、重点研究方向与研究进展等内容…

【相机与图像】1. 相机模型的介绍:内参、外参、畸变参数

想着整理下相机模型(内容上参考 slam十四讲)、相机的内外参标定。方便自己的使用和回顾。 不过,内外参标定啥时候记录随缘 -_- 概述 【构建相机模型】 相机将三位世界中的坐标点(单位为米)映射到二维图像平面&#xff…

【LeetCode】71.简化路径

1. 题目 2. 分析 3. 代码 我写了一版很复杂的代码&#xff1a; class Solution:def simplifyPath(self, path: str) -> str:operator [] # 操作符的栈dir_name [] # 文件名的栈idx 0cur_dir_name ""while(idx < len(path)):if path[idx] /:operator.ap…

MT6775(Helio P70)处理器规格参数_MTK联发科平台方案

联发科MT6775(Helio P70)采用台积电12nm工艺制程节省功耗达 15%&#xff0c;搭载了四颗Arm Cortex-A73 2.1GHz和四颗ArmCortex-A53 2.0GHz的八核处理器。 GPU为ARM Mali-G72 MP3&#xff0c;运行时频率高达900MHz&#xff0c;相较于上一代产品HelioP60&#xff0c;效能提升了1…

搜索与下载Stable Diffusion 模型

我只是一个刚开始学习SD没多久小白&#xff0c;拿到别人的工作流想要运行时&#xff0c;很多时候还要下载对应的模型才能正常运行&#xff0c;虽然也可以通过comfyui-manager下载&#xff0c;不过有时候好像会下载失败&#xff0c;而单独下载所需模型&#xff0c;我自己试过&am…

解析西门子PLC的String和WString

西门子PLC有两种字符串类型&#xff0c;String与WString String 用于存放英文数字标点符号等ASCII字符&#xff0c;每个字符占用一个字节 WString宽字符串用于存放中文、英文、数字等Unicode字符&#xff0c;每个字符占用两个字节 之前我搞过一篇解析String的 关于使用TCP-…

SparkSql oom原因以及参数调优+数据倾斜解决方案

1、Spark历史版本对比 spark1 vs spark2 vs spark3 1、spark1引入内存计算的理念&#xff0c;解决中间结果落盘导致的效率低下。在理想状况下性能可达到MR的100倍。虽然提高了一定的计算效率&#xff0c;但也带来了大量的内存管理问题&#xff0c;典型的如内存oom问题频发。…

第124天:内网安全-代理 Sockets协议路由不出网后渗透通讯CS-MSF 控制上线

目录 思维导图 环境配置 案例一&#xff1a;网络通讯&控制上线--CS-路由添加&节点建立&协议生成&正反连接 案例二&#xff1a;网络通讯&控制上线--MSF-路由添加&节点建立&协议生成&正反连接 思维导图 环境配置 这里由于系统内存问题我只设…

79页PDF免费下载 | 全域数字化转型评估模型研究报告

一、前言&#xff1a; 随着数字技术的飞速发展&#xff0c;零售行业正站在转型的十字路口。如何在变革中找到方向&#xff0c;如何通过数字化转型提升企业竞争力&#xff0c;已成为每个零售企业必须面对的课题。腾讯智慧零售与伏羲智库深度合作&#xff0c;推出《2024年全域数…

【Python selenium过极验滑块】用自动化selenium 操作GEETEST极验滑块,简单粗暴

文章日期&#xff1a;2024.07.24 使用工具&#xff1a;Python 文章类型&#xff1a;自动化过极验滑块 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解密处理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js 标准算法&…

使用FileZilla Cilent快速让手机与电脑进行文件互传(无需生态)

目录 前言使用 FileZilla笔者的话 前言 当设备多的时候文件的传输就成了一种问题。 就比如说我想将手机上的文件传到电脑里面&#xff0c;因为我使用的电脑跟我的手机不是一个生态的&#xff0c;它们唯一的联系或许就是连接到了统一 WIFI 下&#xff0c;也就是说它们在同一个…

Redis与MySQL的数据一致性问题

目录 一、策略模式 1、旁路缓存模式&#xff08;Cache Aside Pattern&#xff09; 2、读写穿透&#xff08;Read-Through/Write-Through&#xff09; 3、异步缓存写入&#xff08;Write Behind&#xff09; 二、一致性解决方案 1、缓存延迟双删 2、删除重试机制 3、读取…

【概率论】-2-概率论公理(Axioms of Probability)

上一篇文章我们学习了基本的概率论内容-排列组合&#xff0c;本次我们学习概率论公理的内容&#xff0c;正式开始计算概率&#xff0c;在开始前我们需要学习一些基本概念。 目录 一.样本空间和事件 1.样本空间 2.事件 3.交并补 二、概率公理 1.基本公理 2.对称差 2.布尔…

Mysql中(基于GTID方式)实现主从复制,单主复制详细教程

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

Android Studio 一键删除 Recent Projects信息的方法

Android Studio打开项目多了就一堆最近项目的记录&#xff0c;在IDE里面只能一个个手动删除。 File - Recent Projects 解决方案&#xff1a;修改配置文件 Note&#xff1a;方法不唯一。 Android Studio 存储了一个包含最近打开项目信息的配置文件。通过手动编辑或删除recentP…

代码随想录算法训练营day7 | 454.四数相加II、383.赎金信、15.三数之和、18.四数之和

文章目录 454.四数相加II思路 383.赎金信思路 15.三数之和思路剪枝去重 18.四数之和思路剪枝去重复习&#xff1a;C中的类型转换方法 总结 今天是哈希表专题的第二天 废话不多说&#xff0c;直接上题目 454.四数相加II 建议&#xff1a;本题是 使用map 巧妙解决的问题&#x…

Pytorch使用教学1-Tensor的创建

0 导读 在我们不知道什么是深度学习计算框架时&#xff0c;我们可以把PyTorch看做是Python的第三方库&#xff0c;在PyTorch中定义了适用于深度学习的张量Tensor&#xff0c;以及张量的各类计算。就相当于NumPy中定义的Array和对应的科学计算方法&#xff0c;正是这些基本数据…

JVM系列(三) -类加载器及双亲委派模型介绍

在之前的文章中&#xff0c;介绍了类的加载过程中&#xff0c;我们有提到在加载阶段&#xff0c;通过一个类的全限定名来获取此类的二进制字节流操作&#xff0c;其实类加载器就是用来实现这个操作的。 在虚拟机中&#xff0c;任何一个类&#xff0c;都需要由加载它的类加载器…

【ffmpeg命令入门】添加水印

文章目录 前言什么是水印&#xff1f;为什么要添加水印&#xff1f;ffmpeg添加水印添加图片水印添加文字水印基本使用方法drawtext的参数 总结 前言 在视频制作和编辑的过程中&#xff0c;添加水印是一个常见且重要的步骤。水印不仅可以保护版权&#xff0c;还能用于品牌宣传和…

netty入门-4 Channel与ChannelFuture

Channel 基本类似于NIO中的Channel概念。作为读写数据的通道。 常见方法 close() 可以用来关闭 channelcloseFuture() 用来处理 channel 的关闭 sync 方法作用是同步等待 channel 关闭而 addListener 方法是异步等待 channel 关闭 pipeline() 方法添加处理器write() 方法将数…