http://www.jianshu.com/p/c75f00182b4cnode
使用的操做系統是是centos6.5,按照官方的推薦的配置,把linux內核升級到3.8以上。安裝步驟以下:linux
cd /etc/yum.repos.dgit
wget http://www.hop5.in/yum/el6/hop5.repogithub
yum install kernel-ml-aufs kernel-ml-aufs-develdocker
vi /etc/grub.confshell
把默認的引導文件設置爲0。由於升級內核以後,新的內核在第一個(0)位置。bootstrap
#檢查內核版本:vim
uname -rcentos
3.10.5-3.el6.x86_64bash
#檢查aufs是否存在
grep aufs /proc/filesystems
nodev aufs
wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum -y install docker-io
啓動docker進程:service docker start
查看docker進程:ps -ef |grep docker
root 1878 1 0 18:33 ? 00:00:00 /usr/bin/docker -d
root 2307 2201 0 18:52 pts/0 00:00:00 grep docker
docker version #查看版本
docker search centos#搜索可用docker鏡像
docker images 查看當前docker全部鏡像
docker pull centos #下載鏡像
cat centos.tar | docker import - centos6 #Docker導入鏡像
docker export id > cenos6.tar #Docker導出鏡像
docker run centos echo "hello word"#在docker容器中運行hello world!
docker run centos yum install ntpdate#在容器中安裝ntpdate的程序
docker ps -l 命令得到最後一個容器的id,docker ps -a查看全部的容器。
運行docker commit 提交剛修改的容器,例如:
docker commit 2313132 centos:v1
docker run -i -t centos /bin/bash 在容器裏啓動一個/bin/bash shell環境,能夠登陸進入操做,其中-t 表示打開一個終端的意思,-i表示能夠交互輸入。
docker run -d -i -t centos /bin/bash 在後臺啓動
docker attach CONTAINER ID 進入在後臺啓動後的這個容器
docker run -d centos:v1 /bin/bash ,-d表示在後臺啓動,以daemon方式啓動。
docker run -d -p 80:80 -p 8022:22 centos:latest /usr/bin/sshd -D
docker stop id 關閉容器
docker start id 啓動某個容器
docker rm id 刪除容器,docker rmi images刪除鏡像
進入容器:
若是 docker 版本已經在 1.3 以上了, 那麼能夠用 docker exec 這個命令:
docker exec -it <容器id>/bin/bash
這樣你就進到這個container 裏面了,這個bash退出也不會影響以前 docker run 啓動的 bash
service docker stop
ifconfig docker0 down
brctl delbr docker0
cd /etc/sysconfig/network-scripts/
vi ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
BRIDGE="br0"
BOOTPROTO=static
vi ifcfg-br0
DEVICE="br0"
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
TYPE=bridge
IPADDR=192.168.1.165
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS=192.168.1.50
vi /etc/sysconfig/docker
other_args="-b=br0"
service docker start
[root@localhost ~]# ps -ef|grep docker
root 5502 1 0 01:23 pts/3 00:00:00 /usr/bin/docker -d -b=br0
root 5800 5311 0 01:47 pts/3 00:00:00 grep docker
service network restart
可能會報如下錯誤:
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface br0: Determining if ip address 192.168.1.161 is already in use for device br0...
[ OK ]
Bringing up interface eth0: Error: Connection activation failed: Master connection not found or invalid
[FAILED]
解決方法:
此時,當前網卡也是能夠通訊的,可是經過網絡管理工具修改IP以後,當前修改操做是不會生效的。那如何消除這個提示呢?
其實,問題的緣由是RedHat本身開發的NetworkManager管理工具和/etc/sysconfig/network-scripts/ifcfg-ethx配置不一樣步形成的。若是要消除這個提示,請關閉NetworkManager服務便可:
chkconfig NetworkManager off
service NetworkManager stop
Stopping NetworkManager daemon: [ OK ]
此時,再從新加載network服務便可:
service network restart
Shutting down interface br0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface br0: Determining if ip address 192.168.1.161 is already in use for device br0...
[ OK ]
Bringing up interface eth0: device eth0 is already a member of a bridge; can't enslave it to bridge br0.
[ OK ]
安裝新的 iproute 包:
wget https://repos.fedorapeople.org/repos/openstack/openstack-icehouse/epel-6/iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm
yum localinstall iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm
安裝pipework:
git clone https://github.com/jpetazzo/pipework
cp ~/pipework/pipework /usr/local/bin/
啓動Docker容器:
docker run -itd --net=none jdeathe/centos-ssh:latest /bin/bash
docker exec -it <容器id> /bin/bash
這樣你就進到這個container 裏面了,這個bash退出也不會影響以前 docker run 啓動的 bash
pipework br0192.168.1.170/24@192.168.1.1
安裝製做CentOS鏡像的工具:
yum -y install febootstrap
製做CentOS鏡像文件centos6-image目錄:
febootstrap -i bash -i wget -i
yum -i iputils -i iproute -i man -i vim-minimal -i openssh-server -i openssh-clients centos6 centos6-image http://mirrors.aliyun.com/centos/6/os/x86_64/
製做Docker鏡像,鏡像名字是centos6-base:
cd centos6-image && tar -c .|docker import - centos6-base
製做能夠ssh登錄的Docker鏡像,名字是centos6-ssh:
docker build -t centos6-ssh https://git.oschina.net/feedao/Docker_shell/raw/start/Dockerfile
通過前面的六個步驟,一個能夠登錄的本地docker鏡像就製做好了。
用戶名是:root,密碼是:123456
做者:MagickKing連接:http://www.jianshu.com/p/c75f00182b4c來源:簡書著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。