THIS IS B3c0me

记录生活中的点点滴滴

0%

Docker使用总结

前言

参考文章:

1.https://blog.csdn.net/m0_57350631/article/details/128127442

一、docker简介

Docker 是一个开源项目,诞生于 2013 年年初,最初是 dotCloud 公司内部的一个业余项目,基于 Google 公司推出的 Go 语言实现。此项目加入了 Linux 基金会,遵守 Apache License 2.0 开源协议,项目代码在 GitHub 上进行维护。
Docker 的操作十分简便,就像操作一个轻量级的虚拟机一样。得益于 Docker 轻量、方便等特点,用户可以借助 Docker 来制作漏洞运行环境,以便于后续调试和保存漏洞特定环境。
著名的漏洞环境集合 Vulhub,就是基于 Docker 和 Docker-compose 来搭建的。安全研究员可以极其便利地使用 Docker 生成一个带有特定漏洞的容器进行调试分析,从而减少在环境配置上的时间消耗,更专注于研究漏洞本身。

二、docker的基本使用方法

  • 搜索镜像

search 命令可以搜索指定名称和仓库的镜像,例如搜索 tomcat 的镜像:

1
docker search tomcat

  • 拉取镜像

pull 命令可以拉取指定仓库和名称以及标签的镜像。当未指定所获取镜像的 tags(标签)时,则自动拉取 latest(最新)版本的镜像

1
docker pull bitnami/tomcat

  • 查看镜像

    images 命令可以读取已经拉取到本地的镜像文件,并列出镜像所存放仓库名、TAG 标签、镜像编号、创建时间以及镜像大小。如果 REPOSITORY 相同而 TAG 不同,则视为不同的镜像。譬如在拉取 Ubuntu 镜像时,设定了 TAG 为 18.04,则使用2.2 Docker 容器编排 15images 查看到的 TAG 一栏会显示 18.04;如果未设定,则显示的是 latest,表示最新版。从镜像编号也可以分辨出这是两个不同的镜像

    1
    docker images

  • 删除镜像

    rmi 指令可以删除已经拉取到本地的镜像。在删除镜像时,需要先停止以这个镜像为模板生成的容器,否则即使添加-f 强制删除参数也无法删除镜像。当容器停止时,则可以使用-f 强制删除镜像。镜像被强制删除后,原先的容器仍然可以继续使用

1
docker rmi bitnami/tomacat

  • 生成容器

run 指令可以以指定的镜像为模板生成对应的容器,并自动从仓库中拉取镜像到本地。例如使用 docker run mysql 命令来生成一个 mysql 的容器

1
docker run mysql

run 指令还可以接受多种参数,比较常用的几个参数如下:

例如,我们需要启动一个 Tomcat 的容器,希望可以访问它的 8080 端口,并在容器启动后在后台默默运行。用户可以使用如下命令生成一个容器。当容器生成后,即可使用浏览器访问本地的 8080 端口访问容器的 Tomcat 服务。值得一提的是,如下命令中第一个 8080 指的是本机的端口号,而第二个 8080 指的是容器中运行 Tomcat服务的端口号

1
docker run -p 8080:8080 -d tomcat

可以看到已经启动了Tomcat服务

我们也可以在容器生成后,立即获得容器的交互式终端来管理容器内部的配置。使用命令 docker run -it ubuntu 可以生成一个简易的 Ubuntu 系统容器。生成容器后会获得一个交互式终端,可以执行 Linux 的各类命令。

  • 退出容器

    退出容器的方式很简单,在终端输入 exit 命令即可,注意终端用户名的变化

  • 查看容器

使用 ps 命令可以列出已经生成且仍在运行的容器,并且会列出容器的编号、所使用的镜像和端口映射等信息。还可以添加参数进行筛选,例如-a 可以列出仍在运行和已经退出的容器,-q 仅列出容器的编号

  • 停止容器

    使用 stop 命令可以将不需要运行的容器停止,就如同将电脑关机一样。值得注意的是在进行容器的相关操作时,例如停止容器、启动容器、进入容器和删除容器等操作,不需要提供完整的容器编号,只需填写编号的部分内容,Docker 会自动匹配到相应容器

  • 启动容器

Existed状态的容器可以使用start命令重新开启。原本处于Existed状态的容器,又转变为 Up 状态

  • 进入容器

有时需要进入容器内部安装软件或修改配置等操作,此时可以借助 exec 命令进行。准确地说,exec 是用来在运行的容器内部执行命令的,但配合-it 和/bin/bash 参数,就可以得到一个 bash 的 shell,相当于进入容器内部。执行命令 docker exec -it 6e /bin/bash 将会进入编号缩写为 6e 的容器内部

  • 删除容器

当有些容器需要废弃并删除时,可以使用 rm 命令进行。在删除容器之前,需要将正在运行的容器停止,否则无法删除。如图 2-28 所示,使用 docker rm 6e 来删除编号缩写为 6e 的容器

  • 复制文件进出容器

使用 cp 命令,可以轻松地将文件复制进容器,同样可以把文件从容器复制至物理机。如图 2-29 所示,使用 docker cp ./flag.txt 28:/var/命令将物理机的 flag.txt 文件复制到编号缩写为 28 的容器中 var 目录下,同样使用 docker cp 28:/var/flag2.txt C:\Users\

ZHY\Desktop\test 将容器中的 flag2.txt 文件复制到物理机桌面上的 test 文件夹中。填写容器中的路径时,前面需要添加容器编号,才可以成功复制

欢迎关注我的其它发布渠道