docker容器部署

一.容器三大概念linux

1.鏡像    2.容器 至關於打隔斷,獨立的空間     3.倉庫nginx

2.概念:因爲在物理機上實行的隔離,啓動容器和啓動進程同樣快速redis

二.核心技術docker

1.Cgroups (Control Groups)-資源管理:控制最多使用多少內存,cpu,用來限制使用資源windows

2.NameSpace-命名空間   在總空間(系統驅動全部資源)的基礎上劃分出獨立的空間,隔離6個東西以下:centos

     1.主機名(一個終端改主機名,其他全部終端打開都能看到改過的主機名) -容器看不到安全

     2.網絡命名空間(當一個終端改ip地址的時候,其他終端用原ip則登不上去)-容器ip變了bash

     3.文件系統命名空間(chroot 改變根目錄路徑)網絡

     4.進程命名空間(pstree執行幾個進程,)只能看見本身的進程,別的進程看不見curl

     5.信號向量命名空間(好比kill -l 有64個信號,發一個信號進程會有迴應)

     6.用戶隔離(不一樣的命名空間裏有不一樣的用戶)

3.Selinux安全

三.Docker概念

1.是一套完整的容器管理系統

2.docker提供了一組命令,讓用戶更加直接方便的使用

3.優勢:相比傳統虛擬化技術,容器更加簡潔高效,容器不須要虛擬機操做系統(缺點就是linux不能兼容windows),容器使用共享公共庫和程序

 缺點:1.隔離線沒有虛擬化強(改一個全部全變了)

         2.公用linux內核,安全性有先天缺陷

         3.Selinux 難以控制

         4.監控容器和容器排錯是挑戰

四.安裝docker

1.安裝前準備:

  須要64位操做系統

  至少是RHEL6.5以上的版本,強烈推薦RHEL7

  關閉防火牆(必須)

2.配置yum源(建立兩臺虛擬機docker1,docker2)

1.docker軟件包位於光盤RHEL-extras.iso下面

2.在物理機ftp目錄下建立文件夾extras

mkdir  /var/ftp/extras

3.掛載光盤在此目錄下

mount RHEL-extras /var/ftp/extras
df -h 查看一下
4.安裝docker

yum -y install docker(35個包)

systemctl restart docker

systemctl enable docker

五.鏡像

1.在docker中容器是基於鏡像啓動的

2.鏡像 是啓動容器的核心

3.鏡像啓用分層設計

4.使用快照的cow技術,確保底層數據不丟失

5.查看鏡像 docker images

6.官網:(hub.docker.com網址上下載鏡像)

7.命令行搜索鏡像: docker search 關鍵字(如nginx)

]#docker search busybox

]#docker pull docker.io/busybox (這個是官方的,下載次數最多)

六.下載.上傳鏡像

]#docker help pull

]#docker pull [options] name[:tag| @digest]

]#docker pull docker.io/busybox   下載鏡像

]#docker push docker.io/busybox  上傳鏡像

七.打包鏡像

docker save 名稱(repository)   :    標籤(tag) -o 文件名

docker1]#docker save docker.io/busybox:latest -o busybox.tar

docker1]#scp busybox.tar root@192.168.1.32:/root

docker2]#ls

docker2]# docker images

docker2]#docker load -i busybox.tar

docker2]#docker images

八.運行容器:

docker run -it docker.io/busybox:latest /bin/sh   #/bin/sh 爲啓動命令,若是不寫就爲默認的啓動命令

/ # ps -ef 進程隔離

/ # hostname  主機名隔離

/ # ifconfig     網絡隔離

/ # ls /        文件系統隔離

/ # cat /etc/passwd    用戶隔離

/ #       信號向量命名空間隔離

九.鏡像經常使用命令  (鏡像:標籤)

1.docker history 查看鏡像的製做歷史

  ]#docker history docker.io/redis:latest

2.docker inspect 查看底層詳細信息

  ]#docker inspect docker.io/redis:latest

  Env 環境變量

  Cmd 啓動命令

3.docker images 查看鏡像列表

4.docker pull 下載鏡像

  ]#docker pull docker.io/busybox   下載鏡像

5.docker push 上傳鏡像

  ]#docker push docker.io/busybox  上傳鏡像

6.docker rmi 刪除本地鏡像

  ]#docker rmi docker.io/centos

7.docker save 鏡像另存爲tar包

  ]#docker save docker.io/busybox:latest -o busybox.tar

8.docker load 使用tar包導入鏡像

  ]#docker load -i busybox.tar

9.docker search 搜索鏡像

10.docker tag 修改鏡像名稱和標籤

  ]#docker tag docker.io/centos:latest cen:v1     將 docker.io/centos:latest 改成 cen:v1

十.容器經常使用命令:  (命令+id)

1.docker run 運行容器          #建立一個新的容器而且啓動

   docker run -it docker.io/centos

2.docker run -itd docker.io/nginx:latest     啓動後放在後臺(好比nginx)

   docker inspect 882117d0581d 能夠查看到nginx的地址

   ping 172.17.0.2
   curl 172.17.0.2

3.docker ps 查看容器列表

           ]#docker ps -a  顯示全部容器

            ]#docker ps -aq  只顯示ID

4.docker stop 關閉容器

       經過docker ps 查看容器的Id       docker stop id號 關閉容器

5.docker start 啓動容器

      經過docker ps 查看容器的Id       docker start id號 開啓容器

6.docker restart 重啓容器

      經過docker ps 查看容器的Id       docker restart id號 重啓容器

7.docker attach|exec 進入容器

   1.docker attach 進入已經啓動的容器  鏈接的是systemd(上帝進程)  exit會致使容器關閉   須要 ctrl + p q 放入後臺

   docker ps 查看id 後   docker attch id號 進入

   2.docker exec 進入新的進程     比較經常使用(新開一個控制檯) 直接退出後不會影響進程

  docker exec  -it   id號  /bin/bash

  進入後:pstree -p

8.docker inspect 查看容器底層信息

  ]#docker top 882117d0581d

9.docker top 查看容器進程列表

  ]#docker top 882117d0581d

10.docker rm 刪除容器

     ]#docker rm 882117d0581d

相關文章
相關標籤/搜索