如何搭建完整的docker版ubuntu

2021/9/22 7:09:50

本文主要是介绍如何搭建完整的docker版ubuntu,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录
  • 0x01 前面的碎碎念
  • 0x02 docker安装
  • 0x03 镜像拉取与容器构建
  • 0x04一些镜像配置
    • 非最小化
    • 换源(非必需)
  • 0x05打包镜像

0x01 前面的碎碎念

最近社团的服务器重新装了系统,学长装的CTFd被清空了,我要重新装一次。老师还说服务器要给他们实验室做实验用,让我小心点,别搞坏了(手动捂脸)。于是我就决定将整个平台在本机docker里操作,然后打包到服务器上,这样到时候出了问题也怪不到我。

其实这次搭建还是有点野心的,我想实现XCTF那种动态发放容器的功能。这个可能得后面再更新了。

0x02 docker安装

装docker是好久之前装的了,也没什么坑,网上的教程都有,就不演示了。这里推荐菜鸟教程的docker教程,个人认为docker基础用法,这个网站是相对比较完整而且翻译比较好的。

Docker 教程 | 菜鸟教程

0x03 镜像拉取与容器构建

因为需要完整的操作系统,所以选择了linux,而我自己本身也是用的kali,所以就选择了用的更顺手的ubuntu。默认是最新版本(20.04 LTS),直接

docker pull ubuntu

这里可以选择更换docker国内镜像源加速,如果出现连接失败或者下载速度过慢,可以尝试更换。

因为需要使用这个系统进行LAMP开发,所以不能使用docker自带的端口通信,将不同容器链接(比如菜鸟演示的单独下载nginx和php,并链接起来),实际上,我认为直接使用虚拟系统操作比端口通信更简单(我是懒狗,我摊牌了)
下载后会得到一个镜像ID,使用docker images可以查看所有镜像。
以后调用这个镜像,可以使用直接名字ubuntu,默认使用tag:latest,或者可以使用ID调用。这里说个小技巧,在不会出现歧义的情况下,所有的ID都可以只写前两位。
docker run -dit fb docker run -dit ubuntu
换言之,这两种方法是等效的。
解释一下参数

-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用

构建镜像后,还需要启动和链接
docker start xx(容器ID) docker attach xx(容器ID)
此时成功进入虚拟机系统。

0x04一些镜像配置

非最小化

需要对系统进行非最小化处理,否则会出现各种依赖错误。这里只需要一行命令

unminimize

这个脚本是系统内置的,在终端输入这行命令一路y就行了。

换源(非必需)

换源的目的是为了加速下载,后面下载的东西多,如果不换的话速度太慢了,但是如果你觉得麻烦可以省去这一步。
在更改sourse.list之前还需要下载CA证书,否则无法换源
使用命令

apt install ca-certificates

因为没有vim,所以只能使用echo进行简单处理。换源前备份一下

cp /etc/apt/sources.list /etc/apt/sources.list.bak
echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse -> /etc/apt/sources.list

输入以下命令

apt update
apt upgarde
apt install vim

下载vim,然后将这个复制到sources.list里

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

0x05打包镜像

到这里可以暂时停止打包一下镜像,如果后面出了问题也方便版本回滚image

docker commit 容器id 容器名字:容器标签

-a是标注作者,写不写都行。

今天就写到这,有时间再更



这篇关于如何搭建完整的docker版ubuntu的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程