Ubuntu安装和docker+docker-compose的安装,以及该环境下vulhub靶场因网络问题(Error response from daemon: Get “htt)无法拉起的解决方法

注意可能只适用于22.04版本,我朋友的25.04版本问题有点多

安装虚拟机

阿里云镜像找到想要的ubuntu镜像文件

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

打开VM

新建虚拟机,选择

镜像文件选择刚刚下载的

之后无脑下一步就可以

需要的命令安装

进入su - 时密码不对

利用su passwd修改密码

新的ubuntu没有vim命令

使用 apt install vim下载

查看ubuntuip地址时ifconfig没有这个命令

这个时候需要安装命令

使用命令

apt install net-tools

刚安装的ubuntu需要换源

进入文件进行换源

vim /etc/apt/source.list.d/ubuntu.list #进入Ubuntu.list编辑模式(24.04版本)

或vim /etc/apt/source.list #进入Ubuntu.list编辑模式(24.04以前的版本)

我这里使用的时22.04 版本的ubuntu所以使用以下配置

ubuntu 22.04 LTS (jammy) 配置如下

deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

如果使用其他版本,

#清华的源

可以访问ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror .

选择自己Ubuntu版本号相对应的源复制到source.list中

#阿里云的源

可以访问ubuntu镜像_ubuntu下载地址_ubuntu安装教程-阿里巴巴开源镜像站 .

选择自己Ubuntu版本号相对应的源复制到source.list中

换源保存文件后需要更新apt包列表

sudo apt-get update #如果是root用户就不用加sudo

sudo apt-get upgrade

更新时可能中间会有提问是否continue直接选择y就行

安装docker

apt-get install docker.io

中间会有提问是否continue直接选择y就行

安装后docker -v 验证以下是否安装成功

安装pip

apt install python3-pip

中间会有提问是否continue直接选择y就行

pip -V验证(V大写)

安装docker-compose

pip安装docker-compose

pip install docker-compose     #安装docker-compose
docker-compose -v                      #验证docker-compose是否安装  

使用pip下载docker-compose可能会有些问题(docker和docker-compose版本会不一样,导致无法拉起靶场),这里不知道是我的电脑的问题还是什么,可以尝试,如果不行的话就按下面curl安装方式进行

提示的错误信息为

TypeError: kwargs_from_env() got an unexpected keyword argument ‘ssl_version‘

docker版本和docker-compose版本不一致,无法拉起靶场

解决方法

先卸载pip安装的docker-compose

pip uninstall docker-compose

安装时需要用到curl命令

apt install curl 安装curl 命令

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

 或

sudo curl -L "https://github.com/docker/compose/releases/download/1.28.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

赋运行权限

sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

查看版本

sudo docker-compose version 或 docker-compose -v

安装vulhub

记得直接在桌面打开终端下载,要不就直接看下面怎么把vulhub弄到桌面

git clone https://github.com/vulhub/vulhub.git

这个时候直接cd到你安装的vulhub目录拉靶场就可以

安装成功后可以拉起靶场

但是还是会报错

Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded

查询后得知为网络问题

解决方法

换docker的镜像源:

vim /etc/docker/daemon.json

{
  "registry-mirrors": [
    "https://docker.hpcloud.cloud",
    "https://docker.m.daocloud.io",
    "https://docker.unsee.tech",
    "https://docker.1panel.live",
    "http://mirrors.ustc.edu.cn",
    "https://docker.chenby.cn",
    "http://mirror.azure.cn",
    "https://dockerpull.org",
    "https://dockerhub.icu",
    "https://hub.rat.dev"
  ],
  "dns" : [
    "8.8.8.8"
  ],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "200m"
  }
}

然后重启docker

systemctl restart docker

如果vulhub文件在其他文件夹里,一直cd有点麻烦

需要将vulhub转移到桌面

mv ~/vulhub(vulhub现在所在地址) /home/ubuntu/Desktop/    #将下载的vulhub靶场移到桌面上

如果因为权限不够所以无法移动

这个时候需要修改vulhub所在文件夹的权限,要不没法移动到桌面

先ls -ll

查看当前文件夹的权限,方便最后修改回来

举例:

我的vulhub是在etc/apt文件夹里

可以看到初始权限是755

使用chmod 777 apt 修改apt文件夹权限,这个时候就能把vulhub复制粘贴到桌面上

然后再使用chmod 755 apt 修改apt权限为初始权限755

或者第二种方法,但也是修改权限

这个是vulhub在root文件夹里

root文件夹是手动打不开

所以先su - 进入root

然后cd ../

然后对root文件夹修改权限,命令和上面一样,但是注意先看root初始权限是什么,方便一会修改回去

修改权限之后

sudo nautilus

打开root文件夹

将vulhub文件复制到桌面

最后记得将root文件夹权限修改回去

### 解决Docker Nginx容器网络连接配置失败 当遇到`Error response from daemon: driver failed programming external connectivity on endpoint`错误时,通常意味着存在端口冲突或其他网络配置问题。对于Nginx容器而言,此错误可能由多种因素引起。 #### 端口冲突检测与处理 如果在同一主机上另一个服务已经占用了目标端口,则会触发此类错误。例如,在尝试绑定到80端口时,如果有其他Web服务器正在监听该端口,那么创建新的Nginx容器将会失败[^3]。 为了确认是否存在端口占用情况,可以执行如下命令来查看当前活动的TCP连接: ```bash sudo lsof -i :80 ``` 一旦发现有进程占用了所需端口,可以选择终止不必要的进程或更改Nginx容器映射使用的宿主机器上的端口号。 #### 修改Docker Compose文件中的端口映射 假设默认情况下试图将容器内部的80端口映射至宿主机相同编号的端口,可以通过调整docker-compose.yml文件内的ports参数实现自定义映射关系,从而避开潜在的冲突风险: ```yaml version: '3' services: web: image: nginx ports: - "8080:80" ``` 上述配置表示把容器内80端口暴露给宿主机的8080端口访问[^5]。 #### 防火墙规则检查 除了考虑本地应用程序之间的竞争外,还需留意操作系统层面的安全策略是否会对新建立的连接造成阻碍。某些Linux发行版预设启用了iptables防火墙机制,默认阻止未授权的数据包流入特定范围内的端口中;此时应适当放宽相应区间的权限限制以允许合法请求到达指定位置。 可通过以下指令临时开放HTTP协议对应的入站流量路径作为测试手段之一: ```bash sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT ``` 请注意这仅适用于初步验证目的,并不建议长期维持过于宽松的状态以免带来安全隐患。 #### 清理残留资源 有时候即使停止并移除旧版本镜像实例之后仍然无法成功启动最新构建出来的副本,可能是由于之前遗留下来的虚拟网卡设备未能及时释放所致。针对这种情况可借助于清理工具一键清除所有不再需要的对象集合,进而恢复正常的运作环境。 使用下面这条语句即可完成整个过程的操作: ```bash docker system prune -af --volumes ``` 以上措施综合运用有助于排除大部分因外部连通性设定不当而引发的功能障碍现象[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wahaha__zhou_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值