docker桌面版创建Ubuntu容器及镜像配置
一、安装docker桌面版
目前遇到在github clone的一个项目需要在Linux环境下运行,但只有一个Windows主机,双系统太麻烦,虚拟机太慢,所以用现在流行的容器创建一个Linux环境,用的是docker小鲸鱼桌面版。
安装的话网上有很多教程,随便找个看就行,一路下一步而已,附上一个教程。
菜鸟安装教程
二、用docker创建Linux容器
1. pull一个Ubuntu镜像
docker有三个重要概念:仓库(repository)、镜像(image)、容器(container)。
dockerhub像github一样存放着很多远程的Repository(仓库)。每个仓库里面会存放很多可用的image(镜像),所以仓库中会有ubuntu、mysql等等常见系统或应用的镜像,但比虚拟机的更轻量即镜像文件体积更小。可以用镜像创建无数的容器(container),把image比作一个类,container就是类创建出来的对象,所以每一个container创建出来都是一样的。
在powershell里用docker pull Ubuntu
docker pull ubuntu
这是一个极度精简的系统,连最基本的wget命令都没有;所以先要apt-get update升级系统和安装apt-get install wget命令;
2.用镜像创建容器
docker run -it --name=testUbuntu ubuntu 创建一个名字为testUbuntu的容器
options:
--name="name" 为容器指定新name
-d 后台运行容器,并返回容器ID,也即启动守护式容器
-i 以交互模式运行容器,通常与-t同时使用
-t 为容器重新分配一个伪输入终端,通常与-i同时使用
-P 注意是大写,随机端口映射
-p 小写,指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
三、配置镜像
Ubuntu 官方软件源中包含了 Ubuntu 系统中所用到的绝大部分的软件,它对应的源列表文件是 /etc/apt/sources.list。该文件记录Ubuntu 官方源的地址,但国内访问官方软件源速度会慢,为解决这样的问题,国内许多学校以及公司的镜像网站都对官方软件源进行镜像备份,并且定期同步更新,为了提高访问速度,可以选择去访问这些镜像网站,所以我们需要将 Ubuntu 官方软件源的网址替换成国内的 Ubuntu 软件源镜像网站的网址就可以。
因为这个镜像太简单了,连vi和gedit都没有,所以只能用cat来写入。
- 查看ubuntu版本
首先需要查看自己pull的ubuntu是什么版本,一般来说默认是最新的,不同版本用的镜像是不一样的。
cat /etc/issue
- 配置阿里源的镜像
1、删除国外源文件
rm /etc/apt/sources.list
2、创建sources文件,当输入EOF时结束输入
cat>/etc/apt/sources.list<<EOF
3、执行了上面的语句后,复制下面的阿里云的源信息,以EOF这三个字符作为最后一行。我的版本是最新的Ubuntu 20.04,所以下面的阿里源信息是20.04的。
#阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
4、查看输入信息是否正确
这个命令可以展示sources.list的信息,和第2步的相比就少了一个’>‘,’>'这表示的是创建并写入
cat /etc/apt/sources.list
5、 更新apt-get
apt-get update
这样子我们就配置完了一个很简单的容器。
四、从容器生成镜像
由于我们从dockerhub中pull的Ubuntu镜像是一个最小版本,连vi也没有:( 每次创建容器时都需要更换国内源和安装gcc等工具。因此,我认为要做一个将上述完成的容器生成镜像,以后从这个镜像生成的容器就不需要配置了,减少了后续的dirty work
docker commit -a "Niz" testUbuntu myubuntu:v1.0 我的生成命令
docker commit -a "Niz" <容器名/容器id> 镜像名字:tag
options:
-a 提交的镜像作者
-m 提交时的说明文字
-c 使用Dockerfile指令来创建镜像
-P 在commit时,将容器暂停
查看是否成功生成镜像
docker images