docker的使用:

1,安装docker

1
2
3
sudo apt-get install docker

安装docker
1
2
3
sudo apt install docker-compose

运行和定义多容器的docker工具,借助它可以使用yaml配置程序和服务一条命令启动所有服务
1
2
3
sudo docker version

检查docker版本

2,docker的使用

1
2
3
docker-compose pull

可以拉取docker-compose.yml或者docker-stack.yml文件中定义的服务关联的镜像
1
2
3
docker-compose up -d

在后台启动容器并使他们保持运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

启动docker:

sudo service docker start



停止docker:

sudo service docker stop



重启docker:

sudo service docker restart
1
2
3
4
5
6
7
显示docker版本和信息:

docker --version

docker version

docker info
1
2
3
列出镜像列表:

docker image ls

3,dvwa靶场的安装:

可以使用docker search 关键字,输入你想找的镜像,然后再pull下来,这里我选择citizenstig/dvwa

1
docker pull citizenstig/dvwa 

创建容器(此处命名将容器命名为dvwa):

1
2
docker run --name dvwa -d -p 9001:80 citizenstig/dvwa

访问该地址后,先初始化数据库。点击Create/Reset Database 即可。

上述启动容器也可以通过docker-compose启动配置文件:

要将命令 docker run --name dvwa -d -p 9001:80 citizenstig/dvwa 转换为 docker-compose 的配置文件,你可以创建一个名为 docker-compose.yml 的文件,并在其中定义服务。以下是等价的 docker-compose.yml 配置示例:

1
2
3
4
5
6
7
8
9
version: '3.8'  # 指定 docker-compose 文件的版本,这个可以删掉version可能不兼容

services:
dvwa: # 服务名称
image: citizenstig/dvwa # 使用的镜像
ports:
- "9001:80" # 映射本地端口到容器端口
container_name: dvwa # 指定容器名称
restart: unless-stopped # 可选:设置自动重启策略

说明:

  • version: 指定了 Docker Compose 文件的版本。
  • services: 定义了一个或多个服务,这里我们定义了一个名为 dvwa 的服务。
  • image: 指定使用的 Docker 镜像。
  • ports: 映射主机的 9001 端口到容器的 80 端口。
  • container_name: 指定容器名称为 dvwa
  • restart: 可选项,设置容器在停止后自动重启的策略(在这里是 unless-stopped,即除非手动停止)。

启动服务

将上述内容保存到 docker-compose.yml 文件后,使用以下命令启动服务:

1
docker-compose up -d

这条命令会在后台启动 dvwa 服务,与你的 docker run 命令等效。

4,容器的关闭

要关闭正在运行的 Docker 容器,你可以使用以下步骤:

  1. 查看正在运行的容器: 首先,你可以使用以下命令查看所有正在运行的 Docker 容器:

    1
    docker ps
  2. 停止容器: 使用 docker stop 命令停止指定的容器。你需要提供容器的 ID 或名称。假设你要停止的容器 ID 是 abc123,你可以运行:

    1
    docker stop abc123

    你也可以使用容器的名称:

    1
    docker stop 容器名称
  3. 强制停止容器(可选): 如果容器没有响应,可能需要强制停止它,可以使用以下命令:

    1
    docker kill abc123
  4. 确认容器已停止: 再次使用 docker ps 命令查看正在运行的容器,确认你的容器已经不在列表中。

通过这些步骤,你就可以成功关闭正在运行的 Docker 容器。

5,进入与退出docker环境虚拟终端:

进入docker虚拟终端:

进入容器方式一:

docker exec -it 容器名/容器ID /bin/bash

1
docker exec -it dvwa2 /bin/bash

进入容器方式二: 推荐使用 exec 方式

docker attach 容器名/容器ID

退出docker虚拟终端:

从容器内 退出到自己服务器中 需注意 两个退出命令的区别

退出容器方式一:

exit

#直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭

退出容器方式二:推荐

Ctrl + p + q

优雅退出 — 无论是否添加-d 参数 执行此命令容器都不会被关闭

6,当你修改docker拉取源后需要重新加载docker

当你看到这个警告信息时,说明Docker的服务配置文件或其依赖文件发生了变化。你需要重新加载systemd的配置,以便这些变化生效。可以按照以下步骤操作:

1. 重新加载systemd配置

首先,运行以下命令以重新加载systemd的配置:

1
sudo systemctl daemon-reload

2. 重启Docker服务

然后,你可以重新启动Docker服务:

1
sudo systemctl restart docker

3. 检查Docker服务状态

最后,检查Docker服务的状态,确保其正常运行:

1
sudo systemctl status docker

通过这些步骤,你应该能够成功地使新的配置生效并重启Docker服务。

7,docker容器间文件的复制

\#docker cp 容器ID/名称:文件路径 要拷贝到外部的路径 | 要拷贝到外部的路径 容器ID/名称:文件路径

容器文件拷贝 —无论容器是否开启 都可以进行拷贝

1
2
3
4
5
6
7
8
9
10
#从容器内 拷出
docker cp 容器ID/名称: 容器内路径 容器外路径

docker cp container_id:<docker容器内的路径> <本地保存文件的路径>

#从外部 拷贝文件到容器内
docker cp 容器外路径 容器ID/名称: 容器内路径

docker cp 本地文件的路径 container_id:<docker容器内的路径>

举例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#容器内拷出
docker exec -it 767c57c2595b /bin/bash
cp data/config/check.toml /
cp data/config/notify.toml /
exit

docker cp 767c57c2595b:/notify.toml /tmp/
docker cp 767c57c2595b:/check.toml /tmp/

#拷进容器内
docker cp /tmp/check.toml 93fab2d94b5a:/
docker cp /tmp/notify.toml 93fab2d94b5a:/

docker exec -it 93fab2d94b5a /bin/bash
cp /check.toml data/config
cp /notify.toml data/config