安裝Docker

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

wKioL1WTSTGAfgYjAAJBCTk1n7Q535.jpg

[root@docker ~]# docker pull centos            #下載centos鏡像

wKiom1WTR3XjDzydAADDWddUTHI037.jpg

[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

#####安裝、建立、導入/出寫到這兒。後期接着寫。

相關文章
相關標籤/搜索