2025年查看docker版本(查看docker版本的命令)

查看docker版本(查看docker版本的命令)解释 可选参数 2 sudo docker search 搜索镜像 可选参数 搜索收藏数大于 3000 的镜像 指定版本下载 3 docker rmi 删除镜像 镜像 id 可以省略为 bbf6 4 容器命令 如拉取一个 centos 容器 加入参数命令后 成功运行命令 简单来说这个命令就是就是增加权限的 很有必要添加的一个参数 因为在里面跳过很多坑 下面是我经常用的参数 6 退出容器 7 列出运行过的容器 8 删除容器 9 启动和停止容器 10 拷贝操作 11



 

 
 
 

#解释
 
#可选参数
 
2. sudo docker search 搜索镜像


可选参数

 


搜索收藏数大于3000的镜像

 

 

指定版本下载
 

3 docker rmi 删除镜像
 

镜像id可以省略为bbf6

 

 
4 容器命令

如拉取一个centos容器

 

 
 

 


加入参数命令后

 


成功运行命令

简单来说这个命令就是就是增加权限的。很有必要添加的一个参数,因为在里面跳过很多坑。
下面是我经常用的参数

 
 

6 退出容器
 

7.列出运行过的容器
 

8.删除容器
 
9.启动和停止容器
 
10.拷贝操作
 

 

11. 镜像及的导入和导出

用docker搭建靶场环境是很方便的,因为容器内存是比较小的
就像下面这个容器,我已经搭建好的靶场,但是如何导出来呢。并且可以在另一台主机上再次利用。

导出和导入镜像

镜像的保存

 


镜像的导入

 

容器的导入和导出

导出镜像

 


导入容器快照



12. docker Portaniner图形管理界面

Portaniner是docker的图形化管理工具,类似的工具还有rancher
下载运行portaniner镜像并运行,设置本机映射端口为808

 


但是好像没启动

访问http://IP:端口
密码一定要符合复杂度

13.自定义Docker网络

学习网络之前需要把环境清空一下,
docker rmi -f $(docker images -q)

想把给docker容器ip地址,需要把docker网络理解了,网络方面就是Docker比较薄弱的部分。

安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、 none 、host

认识docker网络几种类型
网络模式简介Host容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。Bridge此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。None该模式关闭了容器的网络功能。Container创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。自定义网络

简单介绍,
bridge :桥接 docker 相当于一个大桥 0.2 0.1 0.3 01就是咱们的桥就可以转发访问了(docker默认的网络)
none:就是不配置网络
host和宿主机共享的网络

创建自定义网络
 


使用ip addr命令可以看到多出来一块网卡。

 


此时我们启动新的容器时,指定mynet即可,也就是 - -net参数

 



当然,咱们自定义创建的网络,可以正常访问外网,

 
不同网段容器通讯

创建完成之后,你会发现,跨网段是无法互相ping通的
也就是咱们的docker0 和mynet里面的容器是无法进行通信的,
使用这条命令,将tomcat01 加入到mynet里面,也就相当于,一个容器两个网卡,就可以正常通讯了
docker network connect mynet tomcat01

Docker容器通过独立IP暴露给局域网的方法

我的环境

 
创建自定义网络

创建一个172.172.0.0网段,网桥的名字命名为docker-br0,这两个根据自己需要来

 


通过ip adr可以看到我们创建的网卡

自定义ip,开启容器
 


进入到容器安装一些工具

 

查看容器ip 172.172.0.10


开启nginx服务

 

我们在宿主机上访问是没有问题的

我们到kali上,无法访问的
也ping不通

路由转发

此时到宿主机,开启路由转发
配置文件为 /etc/sysctl.conf
echo “net.ipv4.ip_forward=1” >> /etc/sysctl.conf
sysctl -p

到kali上面添加静态路由

 



添加完路由你会发现,可以ping通docker-br0我们自定义的网卡,但是ping不同容器,

Iptables策略
 

注意那句MASQUERADE all – 172.172.0.0/16 0.0.0.0/0会导致所有172.172.0.0/16的数据包都不能到达docker以外的网络,所以我们要关掉这个NAT,关掉很容易,我们只需删掉这一条iptables规则就可以了。然后源IP为172.172.0.10的数据包就可以出现在192.168.10.1/24的网络中了。

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all – 172.172.0.0/16 0.0.0.0/0

 


可以访问了

但是把NAT关掉了以后,虽然内网可以互ping了,但是Docker容器可能上不去网呀。第一个路由器如果自动NAT 了172.172.0.10还好,但要是没有人给Docker容器做NAT,Docker容器就不能上网了,那我们的nginx也就没法用了。那么如何既保证Docker容器访问外网的数据包被NAT,又保证内网通信不被NAT呢?只要稍微修改一下iptables规则就好了,如下

 



Windows同样添加静态路由

 



如果有什么不理解的,可以参考下面三条链接,

关于通过容器内网ip直接路由到docker容器
https://blog.csdn.net/langchao7946/article/details/121860817?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-7-121860817.pc_agg_new_rank&utm_term=docker+%E5%AE%B9%E5%99%A8%E5%86%85%E7%BD%91ip&spm=1000.2123.3001.4430

docker容器通过独立ip暴漏给局域网的方法!!这个博主讲的非常好,简单易懂
https://blog.csdn.net/lvshaorong/article/details/69950694

基于iptables的docker网络隔离通信讲解
如果想要容器正常通信,iptbales是极为重要的,建议看完这篇文章
https://blog.csdn.net/taiyangdao/article/details/88844558?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.highlightwordscore&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.highlightwordscore

总结
  1. 创建自定义网络
  2. 开启容器,绑定创建的自定义网络
  3. 做路由转发
  4. Iptables策略
导入的容器靶机如何添加另一块网卡

我们在导入靶机容器之后,它是自动开启的,网卡也是自动分配好的,所以我们在给靶机添加一块网卡就行了,命令如下
docker network connect docker=br0 (网卡名字) CVE-2021-XXXX(容器名字)
这样我们的容器靶机就有两块网卡了,攻击机只要添加一条路由策略即可访问容器靶机

编程小号
上一篇 2025-01-29 12:33
下一篇 2025-04-03 16:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/71048.html