docker-compose以及docker的使用笔记
- vulhub 漏洞环境使用
github下载vulhub:
git clone https://www.github/vulhub/vulhub.git
编译环境命令[可选]:
docker-compose build
启动漏洞环境命令:
docker-compose up -d
需要注意,使用此命令需要先安装docker 以及docker-compose ,它们都可以进行yum安装,执行此命令需要先cd到要启动的漏洞环境中才可以执行。
查看当前运行的环境(容器)
docker ps
查看当前正在运行的镜像
docker images
有些操作系统中使用的是service start docker。可以两个命令都尝试一下
- docker的启动 使用
systemctl start docker
- docker的关闭 使用
systemctl stop docker
- docker的开启自启动,使用
docker enable docker
- docker查看运行状态,使用
systemctl status docker
使用完漏洞环境后:
- 执行docker-compose down 关闭容器,可以使用
docker ps
查看当前容器状态,正常关闭后显示为空 执行此步骤需要在漏洞文件夹下例如/vulhub/joomla/CVE-2023-23752。 - 使用docker rmi image [image ID] [image ID] 删除镜像 ,有时候无法删除需要使用-f 选项进行强制删除。
- 关闭容器还可以使用 docker stop 容器名,或者使用docker kill 容器名 强制关闭。
docker的使用:https://www.docker.org.cn/book/docker/docker-search-image-6.html
- 使用docker pull 镜像名 拉取镜像
- 使用docker run -d --name "容器名" "镜像名" 启动镜像
- docker search 镜像名称 查询docker库中的镜像
- docker pull 镜像路径 获取镜像
- docker run 镜像名
- 使用docker stop 容器名 关闭容器
- 使用docker rmi 镜像名或者ID
Docker run命令用于启动一个容器。以下是一些常用的选项:
-d:后台运行容器,并返回容器ID;
-i:以交互模式运行容器,通常与 -t 同时使用;
-P:随机端口映射,容器内部端口随机映射到主机的端口;
-p:将容器内部的端口映射到主机上;
--network:指定容器使用的网络;
--privileged:允许容器访问主机的所有设备和网络接口。
--name:指定容器名称;
--rm:在退出终端时自动删除容器。
docker run -t 命令中的 -t 选项用于分配一个伪终端,以便在容器内部与主机进行交互。如果您使用 docker run -it 命令启动容器,则会分配一个伪终端并将其连接到容器内部的控制台。这样,您就可以在容器内部输入命令并查看输出结果了。
容器命令
`
docker exec -it 容器ID /bin/bash 进入容器控制台
docker create - 从镜像中创建一个容器不启动
docker run - 创建一个新的容器并且启动它
docker start - 启动一个已有的容器
docker start -i 容器名 - 恢复启动容器
docker container - 管理容器
docker ps - 列出正在运行的容器
docker ps -a - 查看所有容器
docker ps -l - 显示最后运行
docker top - 查看容器中运行的进程信息
docker exec -it 容器 /bin/bash - 在运行的容器中执行命令
docker exit - 退出容器
docker inspect - 查看关于容器的信息
docker wait - 阻塞运行直到容器停止,然后打印出它的退出代码
docker stop - 优雅停止正在运行的容器
docker kill - 杀死一个或多个正在运行的容器
docker rm - 删除已经停止的容器
docker pause - 暂停容器中所有的进程
docker unpause - 恢复容器中所有的进程
docker events - 从服务器获取实时事件 -f 根据条件过滤事件; --since 从指定的时间戳后显示所有事件;
--until :流水时间显示到指定的时间为止;
docker attach - 连接到正在运行中的容器
docker rename - 重命名容器
docker cd - 在容器和本地文件系统之间复制文件/文件夹
docker diff - 检查容器文件系统上文件或目录的更改
docker export - 将容器的文件系统导出为tar存档
docker port - 列出端口映射或容器的特定映射
docker status - 显示容器资源使用情况统计信息的实时流
docker logs - 打印日志`
镜像命令
`
docker build - 构建一个镜像
docker images - 查看镜像
docker search - 搜索镜像名称
docker push - 将镜像推送到远程镜像仓库中
docker ls - 列出镜像
docker history - 查看中间镜像信息
docker inspect - 查看关于镜像的信息,包括层
docker rm 镜像名称 - 删除镜像
docker tag oldname newname - 修改镜像名称
docker rmi 镜像名称 - 删除本地一个或多个镜像 -f 强制删除
docker save - 将指定镜像保存成 tar 归档文件
docker load - 导入镜像
docker import - 从归档文件中创建镜像
**查看docker信息命令**
docker version - docker版本信息
docker info - 显示docker系统信息 包括镜像和容器数
docker login - 登录docker hub
docker logout - 从docker hub中退出
`
当你想要使用 docker commit 命令将容器的当前状态保存为一个新的镜像时,你可以按照以下步骤进行操作:
首先,确认你已经有一个正在运行的容器,你想要基于它创建新的镜像。
执行 docker ps 命令查看正在运行的容器的相关信息,找到需要保存为新镜像的容器的名称或者 ID。
使用以下命令来创建一个新的镜像:
bash
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
CONTAINER:指定要创建镜像的容器的名称或ID。
REPOSITORY:新镜像所属的仓库名。
TAG:新镜像的标签。
例如:
bash
docker commit my_container my_image:latest
上述命令将创建一个新的镜像,该镜像名为 my_image,标签为 latest,其基础是 my_container 容器的当前状态。
如果需要,你可以通过 docker images 命令验证新创建的镜像是否已经存在。
使用 docker commit 命令是快速创建镜像的一种方法,但在生产环境中最佳实践是使用 Dockerfile 来定义镜像的构建过程,以便达到可重复、可移植和可维护的镜像构建。