1. 下載epel擴展源。 Docker對內核版本有要求linux
[root@docker ~]# cat /etc/redhat-release #查看系統版本git
CentOS release 6.4 (Final)docker
[root@docker ~]# uname -r #查看內核版本.shell
2.6.32-358.el6.x86_64
centos
[root@docker ~]# sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config #關閉selinuxbash
[root@docker ~]# yum update #升級內核ssh
[root@docker ~]# uname -r #查看內核版本.ide
2.6.32-504.23.4.el6.x86_64
centos7
[root@docker ~]# cd /etc/yum.repos.d/spa
[root@docker yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@docker yum.repos.d]# yum install http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
[root@docker yum.repos.d]# yum -y install docker-io
2. 啓動docker
[root@docker ~]# /etc/init.d/docker start
[root@docker ~]# ps -ef|grep docker
root 1264 1 2 10:10 pts/0 00:00:00 /usr/bin/docker -d
root 1379 1152 0 10:11 pts/0 00:00:00 grep docker
3. 加入到開機啓動
[root@docker ~]# chkconfig --add docker
[root@docker ~]# chkconfig docker on
[root@docker ~]# chkconfig --list|grep docker
docker 0:off 1:off 2:on 3:on 4:on 5:on 6:off
4. 獲取鏡像並下載
[root@docker~]# docker search centos #搜索centos鏡像。最好下載一個帶有ssh的鏡像,如 jdeathe/centos-ssh
[root@docker ~]# docker pull centos #下載centos鏡像
[root@docker ~]# docker p_w_picpaths #顯示本地已有鏡像
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos 7 7322fbe74aa5 5 days ago 172.2 MB
centos centos7 7322fbe74aa5 5 days ago 172.2 MB
centos latest 7322fbe74aa5 5 days ago 172.2 MB
⊙ 字段一: 來自於哪一個倉庫.
⊙ 字段二: 鏡像的標記.
⊙ 字段三: 它的ID號(惟一)
⊙ 字段四: 建立時間
⊙ 字段五: 鏡像大小
5. 更改配置文件
[root@docker ~]# cat /etc/sysconfig/docker
other_args="--exec-driver=lxc --selinux-enabled"
6. 鏡像相關操做
6.1 列出、刪除本地全部鏡像, 顯示出的依次是: 鏡像所屬倉庫、標籤名、鏡像ID、建立日期、所佔用空間
//列出本地鏡像
[root@docker ~]# docker p_w_picpaths
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos 7 7322fbe74aa5 Less than a second ago 172.2 MB
centos centos7 7322fbe74aa5 Less than a second ago 172.2 MB
centos latest 7322fbe74aa5 Less than a second ago 172.2 MB
//刪除本地鏡像
[root@docker ~]# docker p_w_picpaths
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos centos7 7322fbe74aa5 Less than a second ago 172.2 MB
centos latest 7322fbe74aa5 Less than a second ago 172.2 MB
centos 7 7322fbe74aa5 Less than a second ago 172.2 MB
[root@docker ~]# docker rmi 7322fbe74aa5
6.2 新建、查看容器
//新建, 使用docker create命令新家你一個docker容器, 該命令新建的容器處於中止的狀態.
[root@docker ~]# docker create -i -t centos:centos7 /bin/bash
be7b31298b7116cec23d50d1989c9efd0190a3ea48e7962636241a14b2ea1006
[root@docker ~]# docker create -i -t centos:centos7 /bin/bash
955906afaa98461dde09b7031abf4bf7fc242c517c4f9b06937a27c7c2d6762e
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
955906afaa98 centos:7 "/bin/bash" 22 seconds ago agitated_pike
be7b31298b71 centos:7 "/bin/bash" 24 seconds ago berserk_brown
6.3 啓動新建的容器
[root@docker ~]# docker start 955906afaa98 be7b31298b71
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b456f0985baa centos:7 "/bin/bash" 10 minutes ago Up 2 minutes desperate_banach
b456f0985baa centos:7 "/bin/bash" 10 minutes ago Up 2 minutes desperate_banach
6.4 進入新建的容器
[root@docker ~]# cd /usr/local/src/
[root@docker src]# wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz
[root@docker src]# tar -zxvf util-2.24.tar.gz
[root@docker src]# cd util-linux-2.24
[root@docker util-linux-2.24]# ./configure --without-ncurses
[root@docker util-linux-2.24]# make nsenter
[root@docker util-linux-2.24]# cp nsenter /usr/local/bin
[root@docker ~]# PID=$(docker inspect --format "` `.`State`.`Pid `" 955906afaa98)
[root@docker ~]# echo $PID
9652
[root@docker ~]# nsenter --target $PID --mount --uts --ipc --net --pid
[root@955906afaa98 /]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
6.5 退出容器, 使用命令exit或ctrl+d.
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
955906afaa98 centos:7 "/bin/bash" 6 minutes ago Up 5 minutes ecstatic_mccarthy
be7b31298b71 centos:7 "/bin/bash" 6 minutes ago Up 5 minutes nostalgic_mclean
[root@docker ~]# PID=$(docker inspect --format "` `.`State`.`Pid `" 955906afaa98)
[root@docker ~]# nsenter --target $PID --mount --uts --ipc --net --pid
[root@955906afaa98 /]# logout
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
955906afaa98 centos:7 "/bin/bash" 6 minutes ago Up 5 minutes ecstatic_mccarthy
be7b31298b71 centos:7 "/bin/bash" 6 minutes ago Up 5 minutes nostalgic_mclean
6.6 中止新建的容器.
//中止
[root@docker ~]# docker stop 955906afaa98
955906afaa98
//從新啓動
[root@docker ~]# docker restart 955906afaa98
955906afaa98
//查看容器狀態
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
955906afaa98 centos:7 "/bin/bash" 41 minutes ago Up 4 seconds ecstatic_mccarthy
be7b31298b71 centos:7 "/bin/bash" 41 minutes ago Up 40 minutes nostalgic_mclean
6.7 建立守護式容器
守護式容器: 沒有交互式會話, 很是適合運行應用程序和服務.
//更多的時候須要,須要讓docker容器在後臺以守護態形式運行,用戶能夠經過添加-d參數來添加.
[root@docker ~]# docker run --name daemon -d centos:centos7 /bin/bash -c "while true;do echo heelow world;sleep 1;done"
4246216f4998e631a01b993eb886f5f36a1bd71c2f91a19fc29778ef5b986f2f
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4246216f4998 centos:7 "/bin/bash -c 'while 3 seconds ago Up 2 seconds daemon
955906afaa98 centos:7 "/bin/bash" 47 minutes ago Up 6 minutes ecstatic_mccarthy
be7b31298b71 centos:7 "/bin/bash" 47 minutes ago Up 46 minutes nostalgic_mclean
//此時用docker run只會反悔一個容器id, 必須用docker attach才能附着新的shell會話, 附着到容器會話, 顯示他一直在打印heelow word
[root@docker ~]# docker attach 4246216f4998
heelow world
heelow world
heelow world
//進入守護式容器
[root@docker ~]# PID=$(docker inspect --format "``.`State`.`Pid`" 4246216f4998)
[root@docker ~]# echo $PID
10869
[root@docker ~]# nsenter --target $PID --mount --uts --ipc --net --pid
//中止守護式容器
[root@docker ~]# docker stop 4246216f4998
4246216f4998
6.8 刪除中止容器狀態
[root@docker ~]# docker rm 4246216f4998
4246216f4998
//刪除正在運行中的容器
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
955906afaa98 centos:7 "/bin/bash" About an hour ago Up 32 minutes ecstatic_mccarthy
be7b31298b71 centos:7 "/bin/bash" About an hour ago Up About an hour nostalgic_mclean
[root@docker ~]# docker rm -f 955906afaa98
955906afaa98
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
be7b31298b71 centos:7 "/bin/bash" About an hour ago Up About an hour nostalgic_mclean
6.9 導出和導入容器
//docker export命令導出
[root@docker ~]# docker export be7b31298b71 > docker.tar
[root@docker ~]# ls
anaconda-ks.cfg docker.tar install.log install.log.syslog
//docker import命令導入
[root@docker ~]# cat docker.tar|docker import - test/centos:v1
85e40b1338414de073fb43d16606e4ca60c9732c4c2b8767cdf6c81d1f5b07d3
[root@docker ~]# docker p_w_picpaths
test/centos v1 85e40b133841 21 seconds ago 172.2 MB
#####安裝、建立、導入/出寫到這兒。後期接着寫。