一、初識docker
1.Docker概念
- Docker 是一個開源的應用容器引擎
- 誕生于 2013 年初,基于 Go 語言實作, dotCloud 公司出品(后改名為Docker Inc)
- Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的 Linux 機器上,
- 容器是完全使用沙箱機制,相互隔離
- 容器性能開銷極低,
- Docker 從 17.03 版本之后分為 CE(Community Edition: 社區版) 和 EE(Enterprise Edition: 企業版)
2.安裝docker
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 https://download.docker.com/linux/centos/docker-ce.repo
4、 安裝docker,出現輸入的界面都按 y
- yum install -y docker-ce
5、 查看docker版本,驗證是否驗證成功
- docker -v
3.docker架構

4.docker配置鏡像加速器
1、 打開阿里云,搜索容器鏡像服務

2、將配置加速器的代碼復制運行即可

二、docker命令
1.docker行程相關命令
- 啟動docker服務
systemctl start docker
- 停止docker服務
systemctl stop docker
- 重啟docker服務
systemctl restart docker
- 查看docker狀態服務
systemctl status docker
- 設定開機啟動docker服務
systemctl enable docker
2.docker鏡像相關命令
- 查看鏡像: 查看本地所有的鏡像
docker images
docker images -q #查看所有鏡像id
- 搜索鏡像:從網路中查找需要的鏡像
docker search 鏡像名稱
- 拉取鏡像:從Docker倉庫下載鏡像到本地,鏡像名稱格式為 名稱:版本號,如果版本號不指定則是最新的版本,
如果不知道鏡像版本,可以去docker hub 搜索對應鏡像查看,
docker pull 鏡像名稱
- 洗掉鏡像:洗掉本地鏡像
docker rmi 鏡像id # 洗掉指定本地鏡像
docker rmi `docker images -q` # 洗掉所有本地鏡像
3.docker容器相關命令
- 查看容器
docker ps # 查看正在運行的容器
docker ps –a # 查看所有容器
- 創建并啟動容器
docker run 引數

進入容器
docker exec 引數 # 退出容器,容器不會關閉
停止容器
docker stop 容器名稱
啟動容器
docker start 容器名稱
洗掉容器:如果容器是運行狀態則洗掉失敗,需要容器停止才能洗掉
docker rm 容器名稱
查看容器資訊
docker inspect 容器名稱
三、docker容器的資料卷
1.資料卷概念及其作用
思考:
- Docker 容器洗掉后,在容器中產生的資料也會隨之銷毀
- Docker 容器和外部機器可以直接交換檔案嗎?
- 容器之間想要進行資料互動?
為解決以上問題,資料卷應運而生
什么是資料卷
- 資料卷是宿主機中的一個目錄或檔案
- 當容器目錄和資料卷目錄系結后,對方的修改會立即同步
- 一個資料卷可以被多個容器同時掛載
- 一個容器也可以被掛載多個資料卷
資料卷作用
- 容器資料持久化
- 外部機器和容器間接通信
- 容器之間資料交換

2.配置資料卷
創建啟動容器時,使用 –v 引數 設定資料卷
docker run ... –v 宿主機目錄(檔案):容器內目錄(檔案) ...

示例:
- 創建啟動c3資料卷容器,使用 –v 引數 設定資料卷
docker run –it --name=c3 –v /volume centos:7 /bin/bash
- 創建啟動 c1 c2 容器,使用 –-volumes-from 引數 設定資料卷
docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash
四、dockerfile
1.鏡像原理




2.鏡像制作

3.dockerfile概念
- Dockerfile 是一個文本檔案
- 包含了一條條的指令
- 每一條指令構建一層,基于基礎鏡像,最終構建出一個新的鏡像
- 對于開發人員:可以為開發團隊提供一個完全一致的開發環境
- 對于測驗人員:可以直接拿開發時所構建的鏡像或者通過Dockerfile檔案構建一個新的鏡像開始作業了
- 對于運維人員:在部署時,可以實作應用的無縫移植
Dochub網址:https://hub.docker.com
4.dockerfile關鍵字
點擊此處查看
5.dockerfile常用命令

6.使用dockerfile創建鏡像
# 1、創建目錄
mkdir –p /usr/local/dockerjdk8 cd /usr/local/dockerjdk8
# 2、下載jdk-8u202-linux-x64.tar.gz并上傳到服務器(虛擬機)中的/usr/local/dockerjdk8目錄
# 3、在/usr/local/dockerjdk8目錄下創建Dockerfile檔案,檔案內容如下:
vi Dockerfile
FROM centos:7
MAINTAINER ITCAST
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u202-linux-x64.tar.gz /usr/local/java/
ENV JAVA_HOME /usr/local/java/jdk1.8.0_202
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
# 4、執行命令構建鏡像;不要忘了后面的那個 .
docker build -t='jdk1.8' .
# 5、查看鏡像是否建立完成
docker images
7.基于鏡像創建檔案
# 創建并啟動容器
docker run -it --name=testjdk jdk1.8 /bin/bash
# 在容器中測驗jdk是否已經安裝
java -version
五、docker服務編排
- 微服務架構的應用系統中一般包含若干個微服務,每個微服務一般都會部署多個實體,如果每個微服務都要手動啟停,維護的作業量會很大,
- 要從Dockerfile build image 或者去dockerhub拉取image
- 要創建多個container
- 要管理這些container(啟動停止洗掉)

六、docker compose
1.概念
Docker Compose是一個編排多容器分布式部署的工具,提供命令集管理容器化應用的完整開發周期,包括服務構建,啟動和停止,
- 使用步驟:
-
- 利用 Dockerfile 定義運行環境鏡像
-
- 使用 docker-compose.yml 定義組成應用的各服務
-
- 運行 docker-compose up 啟動應用

2.Docker Compose 安裝使用
點擊此處查看
七、docker私有倉庫
1.概念
Docker官方的Docker hubhttps://hub.docker.com是一個用于管理公共鏡像的倉庫,我們可以從上面拉取鏡像 到本地,也可以把我們自己的鏡像推送上去,但是,有時候我們的服務器無法訪問互聯網,或者你不希望將自己的鏡 像放到公網當中,那么我們就需要搭建自己的私有倉庫來存盤和管理自己的鏡像,
2.搭建使用教程
點擊此處查看
八、docker容器虛擬化 與 傳統虛擬機比較
- 容器就是將軟體打包成標準化單元,以用于開發、交付和部署,
- 容器鏡像是輕量的、可執行的獨立軟體包 ,包含軟體運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設定,
- 容器化軟體在任何環境中都能夠始終如一地運行,
- 容器賦予了軟體獨立性,使其免受外在環境差異的影響,從而有助于減少團隊間在相同基礎設施上運行不同軟體時的沖突,
相同:
- 容器和虛擬機具有相似的資源隔離和分配優勢
不同:
- 容器虛擬化的是作業系統,虛擬機虛擬化的是硬體,
傳統虛擬機可以運行不同的作業系統,容器只能運行同一型別作業系統



轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/300840.html
標籤:其他
上一篇:Linux 行程(一)
下一篇:CSRF(跨站請求偽造)
