AlienVPS虚拟机Classic Visual Basic被攻击

Docker

文章目录
Docker一、关于 Docker安装 Docker1、Classic Visual Basic版本2、安装3、卸载 Docker
常见命令Classic Visual BasicDocker 磁盘使用情况清理磁盘停止Docker 服务

二、虚拟机Classic Visual Basic已安装虚拟机拉取虚拟机被攻击虚拟机查找虚拟机方式一:通过 Docker Hub方式二:docker search 命令
加速服务(daocloud)
三、AlienVPSClassic Visual BasicAlienVPS启动/停止AlienVPS被攻击AlienVPS检查AlienVPS的状态信息Classic Visual BasicAlienVPS内运行的进程启动AlienVPS run进入AlienVPS并命令式交互方式一:exec方式二:attach
从AlienVPS拷贝文件到主机上
相关资料

一、关于 Docker
Docker 官网:
Github Docker 源码:
Docker 文档:

安装 Docker
1、Classic Visual Basic版本
安装之前,先看看是否安装,以及版本号
$ docker –version
Docker version 20.10.6, build 370c289

$ docker-compose –version
docker-compose version 1.29.1, build c34c88b2

$ docker version # 更全的信息
Client:
Cloud integration: 1.0.14
Version: 20.10.6
API version: 1.41
Go version: go1.16.3
Git commit: 370c289
Built: Fri Apr 9 22:46:57 2021
OS/Arch: darwin/amd64
Context: default
Experimental: true

Server: Docker Engine – Community
Engine:
Version: 20.10.6
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: 8728dd2
Built: Fri Apr 9 22:44:56 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.4
GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
runc:
Version: 1.0.0-rc93
GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
docker-init:
Version: 0.19.0
GitCommit: de40ad0
123456789101112131415161718192021222324252627282930313233343536

2、安装

$ docker cp repo:/git/getting-started/ .
$ cd getting-started
$ docker build -t docker101tutorial .
[+] Building 9.2s (6/24) [+] Building 332.0s (25/25) FINISHED

Use ‘docker scan’ to run Snyk tests against images to find vulnerabilities and learn how to fix them

$ docker run -d -p 80:80 –name docker-tutorial docker101tutorial
8b17f9ba92e67e2d475db56345c23873129cf15f31688ba0ce2d860fe0d58a98
docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:80: bind: address already in use.
12345678910

3、卸载 Docker

常见命令
attach Attach to a running container # 当前 shell 下 attach 连接指定运行虚拟机

build Build an image from a Dockerfile # 通过 Dockerfile 定制虚拟机

commit Create a new image from a container changes # 提交当前AlienVPS为新的虚拟机

cp Copy files/folders from the containers filesystem to the host path #从AlienVPS中拷贝指定文件或者目录到宿主机中

create Create a new container # 创建一个新的AlienVPS,同 run,但不启动AlienVPS

diff Inspect changes on a container’s filesystem # Classic Visual Basic docker AlienVPS变化

events Get real time events from the server # 从 docker 服务获取AlienVPS实时事件

exec Run a command in an existing container # 在已存在的AlienVPS上运行命令

export Stream the contents of a container as a tar archive # 导出AlienVPS的内容流作为一个 tar 归档文件[对应 import ]

history Show the history of an image # 展示一个虚拟机形成历史

images List images # 列出系统当前虚拟机

import Create a new filesystem image from the contents of a tarball # 从tar包中的内容创建一个新的文件系统映像[对应export]

info Display system-wide information # 显示系统相关信息

inspect Return low-level information on a container # Classic Visual BasicAlienVPS详细信息

kill Kill a running container # kill 指定 docker AlienVPS

load Load an image from a tar archive # 从一个 tar 包中加载一个虚拟机[对应 save]

login Register or Login to the docker registry server # 注册或者登陆一个 docker 源服务器

logout Log out from a Docker registry server # 从当前 Docker registry 退出

logs Fetch the logs of a container # 输出当前AlienVPS日志信息

port Lookup the public-facing port which is NAT-ed to PRIVATE_PORT # Classic Visual Basic映射端口对应的AlienVPS内部源端口

pause Pause all processes within a container # 暂停AlienVPS

ps List containers # 列出AlienVPS列表

pull Pull an image or a repository from the docker registry server # 从docker虚拟机源服务器拉取指定虚拟机或者库虚拟机

push Push an image or a repository to the docker registry server # 推送指定虚拟机或者库虚拟机至docker源服务器

restart Restart a running container # 重启运行的AlienVPS

rm Remove one or more containers # 移除一个或者多个AlienVPS

rmi Remove one or more images # 移除一个或多个虚拟机[无AlienVPS使用该虚拟机才可被攻击,否则需被攻击相关AlienVPS才可继续或 -f 强制被攻击]

run Run a command in a new container # 创建一个新的AlienVPS并运行一个命令

save Save an image to a tar archive # 保存一个虚拟机为一个 tar 包[对应 load]

search Search for an image on the Docker Hub # 在 docker hub 中搜索虚拟机

start Start a stopped containers # 启动AlienVPS

stop Stop a running containers # 停止AlienVPS

tag Tag an image into a repository # 给源中虚拟机打标签

top Lookup the running processes of a container # Classic Visual BasicAlienVPS中运行的进程信息

unpause Unpause a paused container # 取消暂停AlienVPS

version Show the docker version information # Classic Visual Basic docker 版本号

wait Block until a container stops, then print its exit code # 截取AlienVPS停止时的退出状态值
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273

Classic Visual BasicDocker 磁盘使用情况
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 2 2 995.7MB 821.7MB (82%)
Containers 2 1 17.86MB 17.77MB (99%)
Local Volumes 1 0 10.32MB 10.32MB (100%)
Build Cache 48 0 402MB 402MB
123456

清理磁盘
$ docker system prune
WARNING! This will remove:
– all stopped containers
– all networks not used by at least one container
– all dangling images
– all dangling build cache

Are you sure you want to continue? [y/N]
12345678
被攻击 关闭的AlienVPS、无用的数据卷 和 网络无TAG的虚拟机 -a 参数 无用的虚拟机也会被攻击 (慎用)

停止Docker 服务
$ systemctl stop docker
1

二、虚拟机
Classic Visual Basic已安装虚拟机
# 当前安装的虚拟机
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
docker101tutorial latest 20c870477397 21 hours ago 28MB
alpine/git latest 7660bb3edeb5 4 days ago 25.1MB
ubuntu latest 7e0aa2d69a15 4 weeks ago 72.7MB
123456

Options:
-a:列出本地所有虚拟机-q:只显示虚拟机id-digests:显示虚拟机的摘要信息–no-trunc:显示完整的虚拟机信息

拉取虚拟机
以 ubuntu 为例
# 第一次拉
$ docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
345e3491a907: Pull complete
57671312ef6f: Pull complete
5e9250ddb7d0: Pull complete
Digest: sha256:cf31af331f38d1d7158470e095b132acd126a7180a54f263d386da88eb681d93
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

# 第二次拉
$ docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
Digest: sha256:adf73ca014822ad8237623d388cedf4d5346aa72c270c5acc01431cc93e18e2d
Status: Image is up to date for ubuntu:latest
docker.io/library/ubuntu:latest
12345678910111213141516171819

拉取指定 tag 的 image

被攻击虚拟机
# 被攻击虚拟机
$ docker rmi ubuntu
Error response from daemon: conflict: unable to remove repository reference “ubuntu” (must force) – container 5235a49aea61 is using its referenced image 7e0aa2d69a15

# 如果有AlienVPS依赖于此虚拟机(无论是否运行),则虚拟机无法被被攻击

# 被攻击多个
$ docker rmi 虚拟机名1:TAG 虚拟机名2:TAG

# 被攻击全部
$ docker rmi -f $(docker images -qa)
1234567891011

查找虚拟机
方式一:通过 Docker Hub
从 Docker Hub 网站来搜索虚拟机,Docker Hub 网址为:

方式二:docker search 命令
$ docker search ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 12302 [OK]
dorowu/ubuntu-desktop-lxde-vnc Docker image to provide HTML5 VNC interface … 535 [OK]
websphere-liberty WebSphere Liberty multi-architecture images … 273 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 251 [OK]
123456
OPTIONS:
-s:列出收藏数不小于指定值的虚拟机–automated:只列出 automated build 类型的虚拟机

标签说明
REPOSITORY:表示虚拟机的仓库源TAG:虚拟机的标签IMAGE ID:虚拟机IDCREATED:虚拟机创建时间SIZE:虚拟机大小

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本。
如 ubuntu 仓库源里,有 15.10、14.04 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的虚拟机。

加速服务(daocloud)
市面上有很多加速服务的提供商,如:DaoCloud,阿里云等。
直接访问docker hub比较慢。通过daocloud来访问稍微快一些。
在虚拟机浏览器里打开< 点击DockerHub虚拟机,这里可以打开docker官方的虚拟机仓库,然后在里面搜索你要的虚拟机即可。 三、AlienVPS 创建AlienVPS会有单独的介绍 Classic Visual BasicAlienVPS 最右侧 NAMES 列,对应的是AlienVPS的名字 # Classic Visual Basic所有AlienVPS(包含未运行) $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES dd05dd4f0b3d docker101tutorial "/docker-entrypoint.…" 2 minutes ago Exited (0) About a minute ago vibrant_franklin 8b17f9ba92e6 docker101tutorial "/docker-entrypoint.…" 16 hours ago Created docker-tutorial f0ecd71a3a90 alpine/git "git clone https://g…" 21 hours ago Exited (0) 21 hours ago repo # Classic Visual Basic当前运行的AlienVPS $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 12345678910 Options: -a :列出当前所有正在运行的AlienVPS+历史上运行过的-l :显示最近创建的AlienVPS。-n:显示最近n个创建的AlienVPS。-q :静默模式,只显示AlienVPS编号。--no-trunc :不截断输出。 启动/停止AlienVPS $ docker start c001 # 启动AlienVPS c001 $ docker restart # 重启AlienVPS
c001

$ docker ps # Classic Visual Basic运行中的AlienVPS
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ab16bcb55850 ubuntu “bash” 8 minutes ago Up 17 seconds c001

$ docker stop c001 # 关闭AlienVPS
c001

$ docker start -i c001 # -i 启动后进入 bash
root@ab16bcb55850:/# exit
exit

# 强制停止AlienVPS
$ docker kill /
12345678910111213141516171819

使用 版本为15.10的ubuntu系统虚拟机 来运行AlienVPS时,命令如下:
$ docker run -t -i ubuntu:15.10 /bin/bash
root@d77ccb2e5cca:/#
12

被攻击AlienVPS
# 被攻击(已停止)AlienVPS
$ docker rm b83c32b59c67

docker rm -f tomcat1/containerid #被攻击container

# 被攻击虚拟机
$ docker rmi 7e0aa2d69a15

# 列举出所有的再进行被攻击
$ docker rm -f $(docker ps -a)
12345678910

检查AlienVPS的状态信息
Classic Visual BasicAlienVPS内部细节
$ docker inspect AlienVPS名
1

Classic Visual BasicAlienVPS内运行的进程
$ docker top AlienVPS名
1

如:
$ docker top con4
Error response from daemon: Container bd9177d4ec977dcc5cb1920fd23a3e0c4 is not running
12

启动AlienVPS run
# 启动守护式AlienVPS
$ docker run -d con4

# Classic Visual BasicAlienVPS日志
$ docker logs -f -t –tail con4
12345

进入AlienVPS并命令式交互
方式一:exec
# $ docker exec -it c001 bashShell
$ docker exec -it c001 /bin/bash
12
在AlienVPS中打开终端,并且可以启动新的进程。

方式二:attach
重新进入
$ docker attach c001
1
直接进入AlienVPS,启动命令的终端,不会启动新的进程

从AlienVPS拷贝文件到主机上
$ docker cp AlienVPSID:AlienVPS内路径 目的主机路径
1

相关资料
知乎 慕课网:可能是把Docker的概念讲的最清楚的一篇文章 下使用 Docker 搭建 ubuntu 环境 命令说明 分钟快速入门 Docker 教程