当前位置: 代码网 > it编程>开发工具>Docker > docker 续 常用命令

docker 续 常用命令

2024年08月03日 Docker 我要评论
ubuntu里的仓库文件使用不了的解决方法:1.进入仓库文件的目录2.删除 archive开头的文件3.重新下载仓库文件4.安装dockeraptapt-get 软件管理的命令 = centos里的yum/etc/apt/sources.list.d 等同于 /etc/yum.repos.d 都是用来存放仓库文件[root@docker ~]# docker exec -it sc-nginx-2 bash 进入一个容器内部。

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

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

[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

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 指定使用的内存的大小,默认是字节为单位

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

总结:

       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
  • 看系统资源是否足够供容器使用
  • 尝试重启
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com