Hacklink panel

Hacklink Panel

Hacklink panel

Hacklink

Hacklink panel

Backlink paketleri

Hacklink Panel

Hacklink

Hacklink

Hacklink

Hacklink panel

Hacklink

Hacklink

Hacklink

Hacklink

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink satın al

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Illuminati

Hacklink

Hacklink Panel

Hacklink

Hacklink Panel

Hacklink panel

Hacklink Panel

Hacklink

Masal oku

Hacklink

Hacklink

Hacklink

Hacklink

Hacklink

Hacklink

Hacklink

Hacklink panel

Masal Oku

Hacklink

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink

Hacklink

Hacklink

Hacklink

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink

Hacklink

Hacklink Panel

Hacklink

Hacklink

Hacklink

Buy Hacklink

Hacklink

Hacklink

Hacklink

Hacklink satın al

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink

Masal Oku

Hacklink panel

Hacklink

Hacklink

Hacklink

Hacklink satın al

Hacklink Panel

Postegro

royalbet

yeni deneme bonusu veren siteler

Hacklink panel

cratosroyalbet

betper

Hacklink satın al

Hacklink

pulibet güncel giriş

pulibet giriş

casibom

casibom

casibom

casibom

casibom

casibom

casibom

casibom

adapazarı escort

antalya dedektör

jojobet

jojobet giriş

casibom

casibom giriş

casibom

casibom

sapanca escort

deneme bonusu

coinbar

coinbar giriş

mislibet

mislibet

kingroyal

kingroyal güncel giriş

kingroyal giriş

king royal giriş

holiganbet

holiganbet giriş

Grandpashabet

INterbahis

AGB99

Agb99

taraftarium24

grandpashabet

izmir escort

holiganbet

kingroyal

porno

sakarya escort

Hacking forum

google

deneme bonusu

coinbar

deneme bonusu veren siteler

orisbet

klasbahis

klasbahis giriş

kingroyal giriş

king royal

betcio

marsbahis

marsbahis

kingroyal

kingroyal giriş

king royal

interbahis

Mardin Escort

portobet

betcup

betvole giriş

betticket

limanbet

belike

meybet

betebet

galabet

meritking

meritking giriş

casibom

İkimisli

×

1.容器

  • 容器与虚拟机的区别
  • 选型
  • 使用配置
  • 容器指令(镜像,容器)

2.容器与虚拟机(虚拟化)区别

虚拟机容器
优点1.使用简单2.也有成熟管理工具,VMware esxi vcenter,KVM,Openstack3.可以随意定制(加内存,cpu,磁盘)4.启动虚拟机要经历完整的Linux启动流程1.快速部署(扩容,弹性伸缩)2.大部分环境都有现成镜像3.让我们不再关注系统基础设施,把关注点放在使用上(配置,升级,优化)4.不依赖硬件(windows也可以运行容器)5.启动容器秒级,不同容器之间互相隔离,默认网络,进程信息等(启动1个ngx占80端口,在启动1个占80也可以)6.相当于一个进程
缺点1.需要硬件支持虚拟化技术(VT-X),电脑资源分配给虚拟机2.同一台虚拟机跑多个服务,可能有冲突3.导致资源利用率不高4.占用资源较多(整一台虚拟的机器)5.不满足目前升级。快速扩容,快速部署,回滚时不方便1.使用较为复杂2.共享Linux系统内核,推荐使用较新Linux内核(3.10以上,centos7正正好好支持)3.自定义镜像与批量管理

3.容器运行时选型

运行时(Runtime)
docker最经典, 也可搭配k8s
containerd一般搭配k8s使用
podman
…..

4.docker的cs架构

  • 镜像: 一般放着服务的环境(系统环境,ubt,debian),再带着1个服务(ngx, php等)
  • 容器: 运行容器要有对应的镜像

docker run运行容器时,会看本地是否有镜像,有则运行;没有就去镜像仓库下载(官方/自建)

5.极速上手指南

环境准备配置ip
docker012核心4g内存(2c4g)10.0.0.81/172.16.1.81
docker022核心4g内存(2c4g)10.0.0.82/172.16.1.82

5.1全流程

#1.删除系统已有的runc(命令)--麒麟系统的坑
rm   /usr/local/bin/runc 

#2.解压dockerxxx27.tgz (二进制,解压即用) 然后修改所有者为root    
tar xf dockerxxx27.tgz
chown -R root.root docker

#3.把解压后的命令移动到/bin/下---> dockerd就是服务端
mv  docker/*  /bin/
docker --version   #检查   

#4.配置systemctl文件
mv  docker.service  /usr/lib/systemd/system/

#5.加载systemctl文件
systemctl daemon-reload 

#6.创建docker配置文件并写入内容-->为了加速,镜像仓库地址
mkdir -p /etc/docker/

cat >/etc/docker/daemon.json<<'EOF'
{
  "registry-mirrors" : ["https://do.nark.eu.org",
   "https://dc.j8.work",
   "https://docker.m.daocloud.io",
   "https://dockerproxy.com",
   "https://docker.mirrors.ustc.edu.cn",
   "https://docker.nju.edu.cn",
   "https://docker.mirrors.ustc.edu.cn",
   "https://docker.registry.cyou",
   "https://docker-cf.registry.cyou",
   "https://dockercf.jsdelivr.fyi",
   "https://docker.jsdelivr.fyi",
   "https://dockertest.jsdelivr.fyi",
   "https://mirror.aliyuncs.com",
   "https://dockerproxy.com",
   "https://mirror.baidubce.com",
   "https://docker.m.daocloud.io",
   "https://docker.nju.edu.cn",
   "https://docker.mirrors.sjtug.sjtu.edu.cn",
   "https://docker.mirrors.ustc.edu.cn",
   "https://mirror.iscas.ac.cn",
   "https://docker.rainbond.cc",
   "https://do.nark.eu.org",
   "https://docker.shootchat.top",
   "https://registry.docker-cn.com"]
}
EOF

#7.启动docker或重启docker,注意配置开机自启动
systemctl enable --now docker

#8.检查进程,默认没端口;检查
ps -ef|grep docker
docker version  #检查客户端和服务端

#8.docker pull拉取镜像测试(得有网,会在刚才配置的地址中找)---->备用方案(使用下载好的镜像)
docker pull nginx:alpine   

#9.检查本地有的镜像(第一列:镜像名,第二列:标签版本)
docker images

5.2小故障(未删除runc的错误提示)

6.docker指令

#1.镜像指令
docker image --help
docker images == docker image ls
docker load -i 导入镜像
#2.容器指令
docker container help
docker run -d (后台运行) --name 容器名字(独一无二)  -p 端口映射  镜像名字:tag   
#容器在系统中是个独立的进程,相当于内网环境,外界访问容器-->端口映射(iptables)--宿主机端口映射到容器的端口
#若写了一个镜像名,在本地没有,docker run会调用docker pull

#运行容器
docker run -d --name ngx_test1 -p 80:80 nginx:alpine
#浏览器访问即可

#容器名字冲突,不创建容器;端口冲突,创建容器,未启动,-a查看,删掉即可
#docker ps 只显示运行中的容器
docker ps -a
docker rm  容器名字(没运行)  -f强制删除容器(运行中)

docker用到了iptables,自动实现了端口映射和共享上网,在nat表中自定义链docker -->我们要开启内核转发功能(xxip_forward=1)

6.1镜像指令

  • 镜像仓库(外网): https://hub.docker.com/

1)查看镜像

docker image ls  #简写为下方
docker images
选项:-a 查看所有镜像包含隐藏镜像
     --no-trunc 不要省略,显示所有 后面很多容器镜像指令也有这个选项

2)下载镜像

#1.下载镜像
docker pull nginx:latest   #使用latest 最新版  版本号,也叫tags标签
docker pull nginx    #也是latest最新版,不推荐

#2.镜像名字
nginx:版本   版本:1.26  1.26.0  1.26-alpine
docker镜像里的系统说明
debian系统功能/命令多一些。buster(版本10),bullseye(11),bookworm(12)主流
ubuntu系统功能/命令多一些。22.04
alpine系统超级精简的系统(基础的命令,工具)
[root@docker01 ~]# docker images |egrep '^debian|^ubuntu|^alpine'
debian       buster        1de12428f6f4   2 years ago   114MB
debian       bullseye      189a2f977ff1   2 years ago   124MB
debian       bookworm      3676c78a12ad   2 years ago   116MB
ubuntu       20.04         14be0685b768   2 years ago   72.8MB
ubuntu       22.04         5a81c4b8502e   2 years ago   77.8MB
alpine       latest        c1aabb73d233   2 years ago   7.33MB

3)镜像的sl大法(save/load)

  • 没有公网怎么下载使用镜像?
1.找一台有公网的机器
2.docker pull 常用服务的镜像

3.docker save 导出镜像为.tar包

4.传输到指定节点(适用于节点少)

5.docker load -i xxx +for 循环实现
[root@docker01 ~/nodejs-maven]# for n in `ls *`
> do
> docker load -i $n
> done


未来节点多: 把下载下来的镜像上传到私有镜像仓库中
  • docker镜像的save/load
#1.sl大法(save/load)
load 导入   save 导出

#2.直接导出不压缩
docker save nginx:1.24  -o nginx.tar(tar包名字随意)

#导出并压缩
docker save nginx:1.24 |gzip >nginx.tar.gz
.tar或tar.gz传输到对应节点不用解压(就1个镜像)

#删除镜像
docker rmi nginx:1.24(镜像名)
#导入
docker load -i xxx.tar或xxx.tar.gz
  • 删除镜像
docker image rm   #简写为下方
docker rmi  #镜像已经使用中,就是启动容器  需要先删除容器,然后删除镜像

4)docker镜像的tag标签

  • 未来自建镜像仓库时使用
docker tag 原有的名字 新名字  #不是修改名字 2个镜像的ID号一样,实际是1个,占的空间也是1份
docker tag 镜像id  新名字

5)查看各种信息

  • 查看镜像,容器….信息
#jq是专门处理json形式数据的命令
yum install -y jq

#查看镜像信息(json形式)
docker inspect 镜像名
docker inspect mysql:8.0-debian |jq .[]   #先去掉/进入最外面的[],然后直接使用(最外面是列表,然后是字典变量)

docker inspect mysql:8.0-debian |jq .[].RepoTags
docker inspect mysql:8.0-debian |jq .[].Id

docker inspect 容器名
docker inspect ngx_test |jq .[]
docker inspect mysql:8.0-debian |jq '.[].RepoTags[]'

#获取容器中的端口
docker inspect mysql:5.7-debian |jq '.[].Config.ExposedPorts'

#获取env变量(容器中的环境变量)
docker inspect mysql:5.7-debian |jq '.[].Config.Env[0]'  #注意加上引号。最后一层是列表,用[]当成数组处理(0,1,2..)

#对容器进行巡检
docker inspect ngx |jq '.[].NetworkSettings.Networks.bridge.IPAddress'

6)镜像指令小结

镜像选项
docker images 查看-a 查看所有镜像–no-trunc
docker pull 下载,拉取镜像
docker push 上传到私有镜像仓库,不改默认传官方仓库
docker rmi 删除镜像
docker inspect 查看docker各种资源的信息,检查
docker save/load 导出导入
tag
build
history

6.2容器指令

1)运行容器

  • 开启内核转发(因为用到了防火墙,nat表)

没有内核转发,Docker容器就像一座孤岛——虽然存在,但无法与外界建立网络连接。这就是为什么所有 Docker生产环境部署指南中都强调要确保net.ipv4.ip_forward=1

[root@docker01 ~]# grep ip_forward /etc/sysctl.conf 
net.ipv4.ip_forward=1
[root@docker01 ~]# sysctl -p    #生效
  • 检查宿主机端口是否被占用
ss -lntup|grep 80
  • 启动容器
docker run -d --name nginx_test1 -p 80:80 nginx:1.24   #完整写法:docker container run
--name指定容器名字(要唯一) 不能冲突
-p 指定端口映射 宿主机端口:容器服务端口  这里nginx启动容器端口是80
  • docker run启动容器背后发生了什么?
  • 检查本地是否有指定的镜像,有,则准备运行
  • docker pull 拉取镜像(本地没有则拉取)
  • docker create 然后创建容器(后台运行,容器名字,端口映射)
  • docker start 启动容器
  • 容器运行中…
  • 浏览器访问
http://10.0.0.81:80/

2)检查与删除

  • 检查所有容器
docker ps -a
  • 删除容器
docker rm 容器运行中则需要加-f选项强制删除
  • 删除所有容器/删除指定容器
[root@docker01 ~]# docker run -d --name ngx_v1 -p 84:80 nginx:1.24
cb98ad1c4a3b09caecfe6a1e5fc283103ff2e0c883d60b291ee512a467add957
[root@docker01 ~]# docker run -d --name ngx_v2 -p 85:80 nginx:1.24
8606d3e82b57751facabfd61d8b6c26b74d465cfef8327e4c34d618f3c2d5e0f

#删除所有容器
docker rm -f `docker ps -aq`   #可接名字或id
docker ps -a -q |xargs docker rm -f   #-q只显示容器的id信息

#更精确/针对性删除
docker ps -a |awk '$2~/nginx:1.24$/{print $1}'|xargs docker rm -f   #第2列包含xx,以1.24结尾

3)连接使用

#前提:容器运行中
docker run -d --name ngx_v1 -p 84:80  nginx:1.24

#非交互式检查ip信息
docker exec -it ngx_v1  hostname -I
#检查系统信息
docker exec -it ngx_v1  cat /etc/os-release
#交互式进入容器执行命令(里面命令少,且不支持别名)
docker exec -it ngx_v1 /bin/bash    #/bin/bash指定命令解释器或/bin/sh

-it
-i 交互模式  -t 分配终端(连接进去是命令行,一个窗口)

4)查看日志

docker logs 容器名字   #默认查看容器所有日志

#查看最新日志(防止刷屏)
docker logs -f  类似于tail -f 实时更新(容器运行中才行)
docker logs -n 5 类似于tail -n 5 最近5行
docker logs --since '5m' ngx_v1  #最近5分钟的日志

#启动容器-出现错误
docker run -d --name db  -p 3306:3306 mysql:8.0-debian
#docker logs查看日志
docker logs -n 10 db

#删除未启动的容器,重新创建容器并配置变量
docker rm -f db
docker run -d --name db  -p 3306:3306  -e MYSQL_ROOT_PASSWORD=1 mysql:8.0-debian  #-e创建/修改的实际是环境变量
#连接进入容器,进入数据库
docker exec -it db /bin/bash
docker exec -it db  mysql -uroot -p1  #连到db容器,直接进入数据库

5)容器与宿主机-传输文件/目录

#宿主机-->容器  (常用)
docker cp index.html  ngx_v1:/usr/share/nginx/html/index.html    # 容器名字:目录
未来尽量在宿主机操作,向容器传输

#容器-->宿主机
docker cp ngx_v1:/etc/nginx/nginx.conf  .    # .当前目录

6)容器信息检查

docker ps
docker stats  #查看所有容器占用cpu,内存,磁盘,io,进程线程数等各种信息

docker top --help得知:
docker top 容器名字   #ps命令结果。容器名字后面接选项相当于ps的选项
docker top 容器名字 aux  #进程状态
docker top 容器名字 -efL  #查看线程信息

docker system df #查看整个docker服务信息,一般看磁盘信息

7)容器管理

docker start|stop|restart 容器    #对容器进行开/关/重启,修改服务配置文件后

8)容器指令小结

  • docker run (-d,–name,-p)
  • docker ps (-a,-q,–no-trunc不精简,显示所有),top,stats,system df
  • docker rm (-f)
  • docker exec
  • docker logs 查看日志 -f -n 5 –since
  • docker cp

总结

  • 容器 vs 虚拟化的区别
  • docker cs架构(容器,镜像,镜像仓库)
  • 部署docker (shell,ans剧本)
  • 镜像指令,容器指令(指令长可做别名)
  • 下次核心:自定义镜像; dockerfile

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

作者

2632782425@qq.com

相关文章

helm入门

1.1helm概述 1)什么是helm? 2...

读出全部

k8s部署医疗服务

1)编写资源清单并提交到gitee 2)je...

读出全部

hpa实战

1.部署修仙业务,要求副本数量为1;2.使用...

读出全部
sonbahissonbahis girişmarsbahismarsbahis girişcasibomcasibom girişcasibom güncel girişmarsbahismarsbahis girişbetvolebetvole girişbetvole güncel girişbetvolebetvole girişbetvole güncel girişizmir escortcasibomcasibom girişbetvolebetvole girişbetvole güncel girişhacklink satın al