使用Docker指定安装13.10版本的Ubuntu镜像,并运行:
docker pull ubuntu:13.10 //拉取13.10的Ubuntu
docker run -d -it -p 8888:80 /bin/bash //运行Ubuntu容器
最近遇到docker run不起来Ubuntu的镜像,后面才发现是自己少加了-it这个参数,运行其他的mysql之类的镜像都没需要这个参数就起来了,不太清楚为什么。
查询了一下docker run的参数也没找出来原因,还以为是-it的还有什么功能我不知道。。。。
-i: 以交互模式运行容器,通常与 -t 同时使用;
-d: 后台运行容器,并返回容器ID;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
运行起来Ubuntu的容器之后又遇到一个问题:没办法在Ubuntu里面安装任何软件,连apt-get update都没办法运行,因为:
Ubuntu普通版本支持的时间都有限,过了支持的时间,更新源都会被停用,比如Ubuntu 9.10原来的源都失效了(包括官方源,类似ustc的第 三方源,因为这些第三方源也是和官方源同步的)。因此,直接用原来的源列表是不能安装更新软件的。为了解决这个问题,Ubuntu官方专门出了一个 old-release的镜像(http://old-releases.ubuntu.com/),可以用这个源更新。
//首先备份一下原来的sources文件,要养成这个习惯,踩坑踩多了就知道这是个好习惯
cp /etc/apt/sources.list /etc/apt/sources.list.backup
//将文件的内容全部删除并将下面的内容写入上面的文件里面
deb http://old-releases.ubuntu.com/ubuntu/ saucy main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ saucy-security main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ saucy-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ saucy-proposed main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ saucy-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ saucy main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ saucy-security main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ saucy-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ saucy-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ saucy-backports main restricted universe multiverse
到此就可以愉快正常地使用13.10的Ubuntu了。
关于这个老版本的Ubuntu的更新源的问题,只需要把saucy换成对应版本Ubuntu的名字就行了。

比如11.04的Ubuntu叫做代号:"Natty Narwhal" ,然后那里就可以将saucy换成natty
deb http://old-releases.ubuntu.com/ubuntu/ natty main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ natty-security main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ natty-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ natty-proposed main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ natty-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ natty main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ natty-security main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ natty-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ natty-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ natty-backports main restricted universe multiverse
最近一直在用docker,加深了对docker的理解,虽然还没到写出很完美的dockerfile的那种地步,但是对Docker是什么比当初有了更深一点的理解,最起码镜像和容器概念已经清楚了,补充几条命令叭。
docker ps:查看正在运行的容器
docker ps -a:查看历史运行的容器(包括容器的ID,映射的端口)
docker run 容器id :重新运行某个容器(docker ps -a那里可以得到容器id)
docker stop 容器id :停止某个容器,这里停止之后,docker ps就查不到了,使用docker ps -a可以查到,如果后面还想重新起来这个容器就可以配合使用docker run
docker rm 容器ID:删除容器,运行这个命令就算docker ps -a也查不到这个容器的相关信息了
docker cp 文件路径 容器id:容器路径 :从物理机拷贝文件到docker容器中
docker commit 容器id 镜像名 : 制作一个镜像
docker push 镜像名 : 上传到docker仓库
网友评论