1. 程式人生 > 其它 >docker安裝與基本使用

docker安裝與基本使用

------------恢復內容開始------------

一、docker簡介

  • docker的英文翻譯是 “碼頭工人”,即搬運工,它搬運的東西就是我們常說的集裝箱Container,Container裡面裝的是任意型別的App。

    我們的開發人員可以通過Docker將App變成一種標準的、可移植的、自管理的元件,我們可以在任何主流的作業系統中開發、除錯和執行。

    從概念上來看,Docker和傳統的虛擬機器比較類似,只是更輕量級,更方便使用。

1、docker與虛擬機器的區別

特性

容器

虛擬機器

啟動

秒級

分鐘級

硬碟使用

一般為MB

一般為GB

效能

接近原生

弱於

系統支援量

單機支援上千個容器

一般幾十個

管理效率

管理簡單

概念裡複雜

2、容器的特性

標準化

  • 保證一致的執行環境
  • 彈性伸縮,快速擴容
  • 方便遷移
  • 持續整合、持續交付與持續部署

高效能

  • 不需要進行硬體虛擬以及執行完整的作業系統

輕量級

  • 快速啟動

隔離性

  • 程序隔離

3、docker引擎

Docker引擎是一個C/S 架構的應用程式

  • 常駐後臺程序Dockerd
  • 一個用來與Dockerd互動的REST API Server
  • 命令列CLI介面,通過與REST API進行互動

4、Docker 三大核心

映象(Image)
Docker 映象是 Docker 容器執行時的只讀模板,映象可以用來建立 Docker 容器。每一個映象由一系列的層(layers)組成。

容器(Container)
Docker 利用容器來執行應用,一個 Docker 容器包含了所有的某個應用執行所需要的環境。每一個 Docker 容器都是從 Docker 映象建立的。容器是從映象建立的執行實 例。它可以被啟用,開始,停止,刪除。每個容器都是互 相隔離的,保證安全的平臺。

倉庫(Repository)
Docker 倉庫是用來集中儲存映象的地方,當建立了自己的映象後,可以使用 push 命令將它上傳到共有倉庫(Public)或者私用倉庫(Private),這樣一來當下次要在另 外一臺機器上使用這個映象時,只需要從倉庫上拉取下來就可以了



二、docker安裝

Docker版本介紹

  • docker-ce:當前docker發行版本
  • docker-ee:docker商業版本

1、先解除安裝掉舊的版本

yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

2、安裝需要的依賴包

yum install -y yum-utils

3、設定映象倉庫

yum-config-manager \

--add-repo\

https://download.docker.com/linux/centos/docker-ce.repo#預設國外的比較慢

yum-config-manager \

--add-repo\

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#推薦阿里雲的,下映象比較快。

#更新軟體包索引

[root@localhost ~]# yum makecache fast

4、安裝docker相關內容 docker-ce 社群版 ee企業版

yum install docker-ce docker-ce-cli containerd.io

報這個錯誤是因為在某些版本之後,【docker-ce】安裝出現了其他依賴包,如果安裝失敗的話請關注錯誤資訊

例如【docker-ce 17.03】之後,需要先安裝【docker-ce-selinux

在某些版本之後,【docker-ce】安裝出現了其他依賴包,如果安裝失敗的話請關注錯誤資訊

例如【docker-ce 17.03】之後,需要先安裝【docker-ce-selinux

安裝完docker-ce-selinux再重新安裝就可以了

五、啟動docker並檢視狀態

[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl status docker

六、使用dockerversion命令檢視docker版本

[root@localhost ~]# docker version

七、配置檔案說明

docker-ce中,已廢棄/etc/sysconfig/docker這種配置方式,轉而採用/etc/docker/daemon.json來配置

將docker的下載映象的倉庫,修改為國內的阿里映象倉庫

[root@localhost ~]# mkdir -p /etc/docker

[root@localhost ~]# cd /etc/docker

[root@localhost docker]# vim daemon.json

{

"registry-mirrors": ["https://w4uieobw.mirror.aliyuncs.com"]

}

修改完成後重啟docker

[root@localhost ~]# systemctl restart docker

[root@localhost ~]# systemctl enable docker

八、docker常用命令

dockerversion 顯示docker的版本資訊

docker info 顯示docker的系統資訊,包括映象和容器的數量

docker --help docker的幫助命令

幫助文件的地址: https://docs.docker.com/reference/

docker映象命令

dockerimages 檢視映象

#解釋

REPOSITORY:映象的倉庫源 TAG:映象的標籤 IMAGE ID:映象的ID

CREATED:映象的建立時間 SIZE:映象的大小

#可選項

-a:#列出所有映象 -q:#只顯示映象的id

docker search 名稱 #映象搜尋命令

dockerpull 映象名稱 #拉取映象

[root@localhost ~]# docker pull nginx

dockerrmi映象名稱 #刪除映象

[root@localhost ~]# docker rmi nginx

dockerrmi -f映象名稱 #刪除指定的映象

dockerrmi -f映象名稱映象名稱映象名稱 #刪除多個映象

dockerrmi -f $(docker images -aq) #刪除全部映象

docker容器命令

容器即程序,一個容器什麼時候會退出,當容器中的程式執行完成,或者容器中的程式放後臺執行,容器都會退出。

說明:我們有了映象才可以建立容器,下載一個centos映象來學習

[root@localhost ~]# docker pull centos:7

dockerrun [可選引數]

--name 給容器起一個方便辨別的名字

-d 後臺方式啟動

- t 配置一個偽終端並繫結到容器的標準輸入上

- i 讓容器的標準輸入保持開啟

-it 使用互動方式執行,進入容器檢視內容

-p 指定容器的埠 –p80:80#主機埠:容器埠

- P 隨機指定埠

- c 指定分配該容器的cpu分片

- m 指定分配給該容器的記憶體大小

進入容器

[root@localhost ~]# docker run -d -P nginx

d3efb256ba0a0390e93b1953aeb205d3dde656cc8be27e83c4a648716b206335

-d放後臺執行 -P 表示隨機對映nginx的預設埠

docker ps 命令 #: 列出當前正在執行的容器

-a #:列出當前正在執行的容器+歷史執行過的容器

-n=? #:列出最近建立的容器

-q #:只顯示容器id

-l #:顯示最後一次建立的容器

退出容器

exit #直接容器停止並退出

Ctrl + P + Q #容器不停止退出

刪除容器

Docker rm 容器id #刪除指定的容器 不能刪除正在執行的容器,如果要強制刪除 rm -f

Docker rm -f $(docker ps -aq) #刪除所有的容器

啟動和停止容器的操作

Docker start 容器id # 啟動容器

Docker restart 容器id # 重啟容器

Docker stop 容器id # 停止當前正在執行的容器

Docker kill 容器id # 強制停止當前執行的容器

匯出和載入映象

[root@localhost ~]# docker save -o centos7.tar centos:7 #將本地映象匯出

[root@localhost ~]# docker load -i centos7.tar #將本地檔案匯入

修改映象名字打標籤

[root@localhost ~]# docker tag centos:7 centos:7.4 #把centos:7映象打標籤為centos:7.4

檢視映象的詳細資訊

[root@localhost ~]# docker inspect nginx