前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >工具的使用 | Docker容器的使用

工具的使用 | Docker容器的使用

作者头像
谢公子
发布2022-01-19 19:13:00
5560
发布2022-01-19 19:13:00
举报
文章被收录于专栏:谢公子学安全谢公子学安全

目录

Docker容器和KVM虚拟化

Docker的安装和使用

基于Docker的漏洞复现环境Vulhub的使用

Docker容器和KVM虚拟化

Docker 容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。Docker容器是一种轻量级、可移植、自包可以在含的软件打包技术,使应用程序几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。容器是完全使用沙箱机制,相互之间不会有任何接口,几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。简单的说,容器就是在隔离环境运行的一个进程,如果进程停止,容器就会销毁。隔离的环境拥有自己的系统文件,IP地址,主机名等。

Docker技术介绍:Docker是通过内核虚拟化技术(namespaces及cgroups cpu、内存、磁盘io等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率。

Linux容器技术,容器虚拟化和kvm虚拟化的区别:

· 容器:共用宿主机内核,运行服务,损耗少,启动快,性能高

· 容器虚拟化:不需要硬件的支持。不需要模拟硬件,共用宿主机的内核,启动时间秒级(没有开机启动流程)

· kvm虚拟化:需要硬件的支持,需要模拟硬件,可以运行不同的操作系统,启动时间分钟级(开机启动流程)

Docker和KVM虚拟化的优点

· Docker解决了软件和操作系统环境之间的依赖,能够让独立服务或应用程序在不同的环境中,得到相同的运行结果。docker镜像有自己的文件系统。

· Kvm解决了硬件和操作系统之间的依赖,Kvm独立的虚拟磁盘,xml配置文件。

Docker的安装和使用

docker的安装

代码语言:javascript
复制
curl -s https://get.docker.com/ | sh   #一键安装Docker,root权限运行。

查看Docker版本

代码语言:javascript
复制
docker version

docker服务的启动与停止

代码语言:javascript
复制
systemctl start docker              #启动

systemctl stop docker               #关闭docker

systemctl restart  docker           #重启docker服务

systemctl daemon-reload             #守护进程重启

docker镜像的管理

代码语言:javascript
复制
docker images         #查看本地镜像

docker images -a      #查看所有的镜像

docker images php     #查看仓库名为php的镜像

docker rmi -f 镜像ID     #强制删除镜像

docker rmi -f 镜像名A:tag 镜像名B:tag    #删除多个镜像

docker rmi -f $(docker images -aq)      #删除全部镜像

docker save          #导出镜像      例如:docker image save centos > docker-centos7.4.tar.gz

docker load          #导入镜像       例如:docker image load -i docker-centos7.4.tar.gz

docker search xx     #查找相关镜像   例如:docker search redis

docker search -s 30 redis     #查找start大于30的redis镜像

docker pull  name:标签    #从查找的镜像中下载下来,标签默认是latest  例如:docker pull  redis 等价于 docker pull redis:latest

docker容器的启动、停止、查看和删除

代码语言:javascript
复制
docker run  -d -P --name xxx REPOSITORY:TAG                  #根据镜像启动容器

    -d:让容器在后台运行

    -P:将容器内部使用的网络端口映射到我们使用的主机上

    -p:自定义端口映射,如 -p 8002:80,意思就是将容器的80端口映射到宿主机的8002端口

    --name:该参数可选,指定容器的名字

docker ps                                   #查看运行中的容器

docker ps –a                                #查看所有的容器

docker start    容器ID                      #启动容器

docker stop     容器ID                      #停止容器

docker restart  容器ID                      #重启容器

docker rm   容器ID                          #删除容器,删除容器前需停止该容器

docker rm  `docker ps -aq`                  #删除全部容器

当启动容器后, 这里会有一个端口映射,此时我们访问宿主机的 9001端口就行了

进入docker容器进行管理

代码语言:javascript
复制
docker exec -it  容器id或容器名字 /bin/bash

导入导出容器

代码语言:javascript
复制
docker export 容器ID > /opt/test.tar      #导出当前容器镜像到/opt/test.tar

docker import /opt/test.tar              #导入/opt/test.tar到容器

查看 WEB 应用程序日志

代码语言:javascript
复制
docker logs -f 容器ID      #可以查看容器内部的标准输出。

查看容器的进程

代码语言:javascript
复制
docker top 容器名

配置docker镜像加速

docker默认是从国外search和pull,所以这里我们需要添加一个国内的镜像地址

代码语言:javascript
复制
#打开该文件

vim /etc/docker/daemon.json   #然后加入下面这些内容

{"registry-mirrors": ["https://registry.docker-cn.com"]}

基于Docker的漏洞复现环境Vulhub的使用

基于Docker的漏洞复现环境Vulhub的使用

vulhub的地址:https://vulhub.org

Vulhub是一个基于 docker 和docker-compose 的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境。

关于如何安装 Docker 和 Docker-compose 就不再赘述。直接启动对应靶机的容器。

启动Docker:systemctl start docker

进入对应的靶机目录,这里我选择weblogic的CVE-2017-10271漏洞,直接一键启动:docker-compose up -d

在漏洞复现完成后,还是在漏洞的目录下移除环境,命令:docker-compose down

参考文章:Docker容器的安装与使用

Docker教程|菜鸟教程

来源:谢公子的博客

责编:梁粉

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 谢公子学安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker容器和KVM虚拟化
  • Docker的安装和使用
  • 基于Docker的漏洞复现环境Vulhub的使用
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档