Docker

1.docker概念

  • Docker 是一個開源的應用容器引擎

  • 誕生於 2013 年初,基於 Go 語言實現, dotCloud 公司出品(後改名為Docker Inc)

  • Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發布到任何流行的 Linux 機器上

  • 容器是完全使用沙箱機制,相互隔離

  • 容器性能開銷極低

  • Docker總的來說是一種容器技術,解決軟體跨環境遷移的問題

2 .安裝docker

官網://www.docker.com

 1、yum 包更新到最新
yum update
2、安裝需要的軟體包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
yum install -y yum-utils device-mapper-persistent-data lvm2
3、 設置yum源
yum-config-manager --add-repo //download.docker.com/linux/centos/docker-ce.repo
 4、 安裝docker,出現輸入的介面都按 y
yum install -y docker-ce
 5、 查看docker版本,驗證是否驗證成功
docker -v

3 .docker架構

 

 

 

  • 鏡像(Image):Docker 鏡像(Image),就相當於是 一個 root 文件系統。

  • 容器(Container):鏡像(Image)和容器(Contain er)的關係,就像是面向對象程式設計中的類和對象一 樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容 器可以被創建、啟動、停止、刪除、暫停等。

  • 倉庫(Repository):倉庫可看成一個程式碼控制中心, 用來保存鏡像。

4. 配置 Docker 鏡像加速器

(1):從docker hub(//hub.docker.com/)上下載,但是很慢

(2):配置鏡像加速器

 ①:USTC:中科大鏡像加速器(//docker.mirrors.ustc.edu.cn)

 ②:  阿里雲(//www.aliyun.com/)

 ③:  騰訊雲

 ④:  網易雲

下面是阿里雲的鏡像像加速器:

只需要將裡面的內容拷下來在命令窗口執行一下就可以了

 查看文件    cat/etc/docker/daemon.json

5 .docker命令-基於CentOS7

 啟動Docker服務:systemctl start docker

 查看狀態: systemctl status docker

 停止Docker服務: systemctl stop docker

 重啟Docker服務: systemctl restart docker

 開機啟動Docker服務: systemctl enable docker 

 啟動完Docker後,查看狀態如圖:

停止後查看狀態:

6.Docker 鏡像相關命令

查看本地所有鏡像: docker iamges 

在遠程倉庫中搜索鏡像: docker search  鏡像名稱

拉取遠程倉庫中的鏡像: docker pull 鏡像名稱:版本號 ,如果不指定版本號,默認是最新的版本latest

當我們在拉取時不知道版本,這時可以去(//hub.docker.com)中找;

刪除本地鏡像: docker rmi 鏡像id  刪除指定的本地鏡像 

刪除所有的本地鏡像: docker rmi 'docker images -q'

7.Docker容器相關命令

查看正在運行的容器:docker ps 

查看所有容器(不管運行還是關閉狀態): docker ps -a

創建並啟動容器:docker run 參數

• -i:保持容器運行。通常與 -t 同時使用。加入it這兩個參數後,容器創建後自動進入容器中,退出容器後,容器自動關閉。

• -t:為容器重新分配一個偽輸入終端,通常與 -i 同時使用。

• -d:以守護(後台)模式運行容器。創建一個容器在後台運行,需要使用docker exec 進入容器。退出後,容器不會關閉。

• -it 創建的容器一般稱為互動式容器,-id 創建的容器一般稱為守護式容器

• --name:為創建的容器命名。

後面再加上 /bin /bash參數後,就是啟動並進入容器,退出容器也就關閉容器;-也稱為交互式容器。

守護式容器:docker run -id --name=r2  redis:5.0 

執行命令後會將容器id輸出

進入容器: docker exec  -it r2  /bin /bash   , 通過-id創建的熔體 ,在exit退出時也不會關閉容器

啟動容器:docker start 容器名稱或容器id

停止容器: docker stop 容器名稱或容器id

刪除指定容器:docker rm 容器名稱或容器id

刪除所有容器: docker rm `docker ps -a -q`      

查看容器資訊:docker inspect 容器名稱或容器id

8.Docker容器的數據卷

Docker 容器刪除後,在容器中產生的數據也會隨之銷毀 ;

Docker 容器和外部機器可以交換文件

容器之間進行數據交互

外部機器是不能直接與容器進行通訊,但是可以與宿主機進行通訊,比如linux。

數據卷:

  • 數據卷是宿主機中的一個目錄或文件

  • 當容器目錄和數據卷目錄綁定後,對方的修改會立即同步

  • 一個數據卷可以被多個容器同時掛載

  • 一個容器也可以被掛載多個數據卷

數據卷的作用:

 • 容器數據持久化

 • 外部機器和容器間接通訊

 • 容器之間數據交換

9.配置數據卷

    創建啟動容器時,使用-v參數 設置數據卷:docker run ... -v 宿主機目錄(文件):容器目錄(文件) ...

   當沒有這個目錄時,會自動創建

    例如run -it --name=r1 -v /root/data:/root/data_container redis:5.0 /bin/bash

 

Tags: