最好内核版本更新到3.10以上,我这里是3.13
absurd@absurd-virtual-machine:~$ uname -r
3.13.0-63-generic
1.更换成163的源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
sudo vi /etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
2.升级你的包管理器
sudo apt-get update
3.安装所有必须和可选的包
sudo apt-get install linux-image-generic-lts-trusty
sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
Docker有deb格式的安装包,安装起来非常的容易。首先添加Docker库的密钥。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
然后把Docker的库添加到apt的源列表中,更新并安装lxc-docker包。
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\
> /etc/apt/sources.list.d/docker.list"
(上面这个deb的不记得生效没有)
sudo apt-get install software-properties-common #增加 add-apt-repository 命令
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:dotcloud/lxc-docker #增加一个ppa源
sudo apt-get update #更新系统
sudo apt-get install lxc-docker
5. Docker去sudo
sudo groupadd docker# 添加当前用户到docker用户组
sudo gpasswd -a absurd docker# 重启Docker后台监护进程
sudo service docker restart# 重启之后,尝试一下,是否生效docker version#若还未生效,则系统重启,则生效
sudo reboot
换dockerhub仓库。可以见
http://www.dockerpool.com/
6.举例ubuntu
docker pull dl.dockerpool.com:5000/ubuntu:12.04
docker tag dl.dockerpool.com:5000/ubuntu:12.04 ubuntu:12.04
absurd@absurd-virtual-machine:~$ docker images
REPOSITORY TAG ID CREATED SIZE
dl.dockerpool.com:5000/ubuntu 12.04 0b310e6bf058 10 months ago 12.29 kB (virtual 257.7 MB)
absurd@absurd-virtual-machine:~$ sudo docker tag dl.dockerpool.com:5000/ubuntu:12.04 ubuntu:12.04
absurd@absurd-virtual-machine:~$ docker images
REPOSITORY TAG ID CREATED SIZE
dl.dockerpool.com:5000/ubuntu 12.04 0b310e6bf058 10 months ago 12.29 kB (virtual 257.7 MB)
ubuntu:12.04 latest 0b310e6bf058 10 months ago 12.29 kB (virtual 257.7 MB)
更改密码
absurd@absurd-virtual-machine:~/base$ sudo docker run -t -i ubuntu:12.04:latest /bin/bash
root@e2cc4dd43b24:/# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
创建一个用 ssh 密钥登陆的 ubuntu 镜像
mkdir base
cd base
ssh-keygen
#生成访问密钥
cat ~/.ssh/id_rsa.pub >authorized_keys
vi Dockerfile
#设置母镜像
FROM ubuntu:12.04:latest
#提供一些作者的信息
MAINTAINER dwj_zz@163.com
#下面开始运行命令,此处更改ubuntu的源为国内163的源
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get upgrade -y
#安装ssh 和supervisor
RUN apt-get install -y openssh-server supervisor
RUN mkdir -p /var/run/sshd
RUN mkdir -p /var/log/supervisor
RUN mkdir -p /root/.ssh
#取消pam限制
RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd
#复制配置文件到相应位置
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY authorized_keys /root/.ssh/authorized_keys
#开放端口
EXPOSE 22
CMD ["/usr/bin/supervisord"]
创建supervisor.conf文件:
core@localhost ~/base $ vi supervisord.conf
#文件内容如下
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D
docker build -t base/163 .
docker run -p 100:22 -d base/163
ssh root@127.0.0.1 -p 100
如果发生Step 14 : COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
Error build: COPY has been deprecated. Please use ADD instead
COPY has been deprecated. Please use ADD instead错误
把上面的copy改成ADD