接上篇,上一篇安装VirtualBox并新建了一个虚拟机,环境为Ubuntu22.04。本篇介绍如何安装配置docker并下载互联网模拟器SEED,并附有一个例子。

安装docker

  1. 彻底删除可能的已有的docker
sudo apt-get remove docker docker-engine docker.io containerd runc
  1. 设置 Docker 仓库

在首次安装docker engine之前,需要先设置docker仓库,否则会报错没有可安装候选。

更新apt包索引并安装包,以允许apt通过HTTPS使用存储库:

 sudo apt-get updatesudo apt-get install \ca-certificates \curl \gnupg \lsb-release

添加Docker的官方GPG密钥:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

注:如果出现了以下报错,可能是因为墙的问题,连接不上外网。

curl: (28) Connection timed out after 300003 milliseconds
gpg: 找不到有效的 OpenPGP 数据。

我当时用了个很玄学的方法解决的,不一定适用所有情况。我当时打开了浏览器,访问了Github,在艰难的访问GitHub的时候,从终端上执行出现报错的命令,然后就成功了。

添加密钥后,使用如下命令设置存储库:

echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 安装docker engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

注:1. 旧版的docker还需要另外安装docker-compose,但是最新的安装方法在这一步同时安装了docker-compose,不需要再另外安装。
2. 如果你出现了无法连接到网站的报错,可以使用步骤2的那个方法试试,我是这样成功的,Github和docker双赢。

4. 验证docker是否安装成功

sudo docker run hello-world

若是出现以下代码,则证明安装成功。

docker常用别名设置

由于docker的命令都过于的长,用起来十分不方便,所以可以设置一下别名。

  1. 使用vim ~/.bashrc命令打开文件,检查是否含有以下代码:

一般都有,如果没有,请自行加上。

  1. 使用命令vim ~/.bash_aliases打开/新建文件,输入以下代码
# For docker
alias dcbuild='docker compose build'
alias dcup='docker compose up'
alias dcdown='docker compose down'
alias dockps='docker ps --format"{{.ID}}{{.Names}}" | sort -k 2'
docksh(){ docker exec -it $1 /bin/bash; }

然后执行以下命令使设置的别名生效,或者也可以关闭终端重新打开:

source ~/.bash_aliases

给普通用户授权

如果设置好别名直接使用的话,可能会出现如下权限不足的报错:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get “http://%!F(MISSING)var%!F(MISSING)run%!F(MISSING)docker.sock/v1.24/version”: dial unix /var/run/docker.sock: connect: permission denied: driver not connecting

所以要将普通用户加入docker组中,由于组docker在安装docker时会自动添加,所以可以直接执行以下命令将普通用户加入docker组:

sudo gpasswd -a $USER docker
newgrp docker

下载互联网模拟器

  1. 网址:https://github.com/seed-labs/seed-emulator
  2. 然后解压下载的文件就可以使用了。

例子

以模拟器给的第一个例子A00-simple-peering为例,位置为seed-emulator-master/examples/A00-simple-peering。

  1. 设置PYTHONPATH环境变量(在解压后的文件夹seed-emulator-master下中运行source命令)

    source development.env
    

如果你想要用python文件生成output文件夹,是必须要执行这一步的。

  1. 在A00-simple-peering目录下执行以下命令,生成output文件夹
python3 ./simple-peering.py
  1. 进入output文件夹,使用以下命令构建镜像(注:命令是设置别名后的命令)
dcbuild

如果您同样出现了以下报错

failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to create LLB definition: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed

那么您可以试一下下面的两条命令:

export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0

如果没有解决,可以参考一下这个链接

如果这两个命令成功了的话,使用以下命令把这两个环境变量设置为永久生效:

目前我的dcbuild遇到了新的如下报错,还未解决。

Status: pull access denied for cfee3a34e9c68ac1d16035a81a926786, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied,

由于我之前的电脑上装的docker是可以正常使用的,所以后面的步骤用的是之前电脑的图。

dcbuild成功界面如下:

  1. 运行容器
dcup

  1. 进入seed-emulator-master/client文件夹,使用dcbuild命令构建镜像

  1. 使用dcup命令运行容器

  1. 打开浏览器,访问http://127.0.0.1:8080/map.html,页面如下

图片就类似这个意思,A00实例的图片找不到了,这个是自己的实验的图片。(我觉得这个真的好好玩,Q弹的)

  1. 正确关闭docker

先在client文件夹下的终端输入dcdown命令或者使用ctrl+C快捷键。

然后在output文件夹下输入dcdown命令或者使用ctrl+C快捷键。

注意:顺序不可以错!!一定要关干净了,否则下次dcup的时候可能会报错!

补充一个dcup报错小技巧,如果dcup报错,可以试着dcdown一下,因为可能是节点之前没有释放干净。

参考资料:

  1. docker官网:https://docs.docker.com/engine/install/ubuntu/
  2. linux的source命令
  3. build报错authorization failed解决办法:https://stackoverflow.com/questions/64221861/an-error-failed-to-solve-with-frontend-dockerfile-v0/66695181#66695181

如果您对以上内容有任何建议,欢迎您私信我。
如果您解决了我在dcbuild那里遇到的问题,请您告诉我,非常感谢。

SEED Emulator之配置docker和互联网模拟器相关推荐

  1. 第二章:阿里云ECS服务器(G5)安装配置docker

    个人简介: 我是廖志伟,一名Java开发工程师,CSDN博客专家,多年一线研发经验,曾就职多家互联网公司,参与并主导多个百万级并发的互联网产品研发与系统架构搭建,对大型分布式,高并发及微服务架构,缓存 ...

  2. IDEA 配置 Docker

    IDEADocker Docker安装 资源下载 链接: https://pan.baidu.com/s/1B6JbwZD5jM86vy8sryOusQ 提取码: 4p5t 资源包含 Docker的e ...

  3. docker omv 防火墙_OpenMediaVault(OMV)配置Docker

    [TOC] OMV配置Docker docker属于omv拓展(omv-extras)插件,如果没有安装拓展包是搜索不到的,如果你还没有安装omv-extras的话,请先安装OMV安装omv-extr ...

  4. wsl2设置挂载_Windows下的Linux子系统安装,WSL 2下配置docker

    Windows下的Linux子系统安装,WSL 2下配置docker 前提条件: 安装WSL 2需要Windows 10版本是Build 18917或更高,首先先确认系统版本已升级. 在"启 ...

  5. Windows 上配置Docker Desktop 的k8s

    前言:打算在windows上配置docker & k8s 的环境来实现abp vnext 的k8s部署,遂进行一系列的安装和配置 在docker desktop 上启动k8s但是一直在star ...

  6. [respberry pi3][suse] 配置docker

    [respberry pi3][suse] 配置docker [respberry pi3][suse] 配置docker arm64 suse上总的软件还是比较少的,特别是对32bit的一些支持,比 ...

  7. 简单配置 docker swarm

    简单配置 docker swarm #准备三台CentOS7 #IP划分 192.168.1.201       virtualBox1 192168.1.202        virtualBox2 ...

  8. centos7配置Docker镜像加速器

    创建并编辑文件 [root@localhost ~]# cd /etc/docker/ [root@localhost docker]# [root@localhost docker]# ls key ...

  9. docker mysql配置 丢失_Ubuntu16.04服务器环境配置 – Docker、MySQL、Redis

    Ubuntu16.04 服务器环境配置 – Docker.MySQL.Redis 安装Docker 1. 卸载旧版本 sudo apt-get remove docker docker-engine ...

最新文章

  1. 机器学习中模型参数和模型超参数分别是什么?有什么区别?
  2. 数据库DBA(3年以内需求)
  3. (求助)請問DE2-70版子 音樂合成器
  4. 比手工模型快10~100倍,谷歌揭秘视频NAS三大法宝
  5. php 时间转换时间戳_php时间戳与date格式转换
  6. python可以做回归分析吗_使用python进行回归分析
  7. php如何识别flac文件,flac是什么格式
  8. [深度学习工具]·FoolNLTK 中文处理工具包使用教程
  9. Linux:友善之臂FriendlyARM Mini2440用MiniTools通过USB烧写系统失败解决方案
  10. DCDC电源纹波测试
  11. java clh_【Java并发编程实战】----- AQS(四):CLH同步队列
  12. 注意力机制Effective Approaches to Attention-based Neural Machine Translation
  13. Apktool工具 - 反编译apk和重新编译apk
  14. SDL介绍----4、S-SDLC安全开发生命周期
  15. c语言编程工具栏没有了,2009计算机二级C语言:工具栏,可拖动,并在被隐藏的地方显示的实现代码...
  16. 陈 好 性 感 写 真 ,难得一见哦[贴图]
  17. stm32f103开发板入门到手进行开发
  18. maven pom profiles
  19. iOS动画 Masonry约束弹框动画animateWithDuration:
  20. 运维工程师模拟面试题

热门文章

  1. Vbscript编程5---注册表
  2. LIO-Livox(一)简介及框架
  3. PCB各层缩写如to\ts\tl等表示什么,阻焊层,助焊层、开窗一探究竟
  4. NCV8161AMX280TBG超低噪音和高PSRR LDO射频和射频调节器模拟电路450 mA
  5. 精彩演讲推荐|智能化变更防控方法、架构与组织实践
  6. linux下实现USB设备(U盘)及SD卡自动识别及挂载(应用层) linux下U盘识别及挂载 linux下SD卡识别及挂载
  7. 干货!On Position Embeddings
  8. 面试题之硬币排成线java极简解法
  9. Feathers项目实战_面板
  10. 计蒜客 封印之门(最短路,floyd)