Docker 個人筆記

2021-10-03 22:38:00 字數 3207 閱讀 4934

docker

什麼是docker? 一處構建,處處執行

概述: 是一套完整的一套容器管理系統

提供了一組命令,讓使用者更加方便的直接使用容器技術,而不需要過多關心底層核心技術.

一款產品從開發到上線,作業系統,到執行環境,再到應用配置,作為運維跟開發之間的協作我們需要關心很多東西,這也是很多互網聯公司都不的面對的問題,特別是各個版本的迭代之後,不同版本環境的相容,對運維人員都是考驗.

docker之所以發展這麼迅速,也是因為它對此提供了乙個標準化的解決方案.

環境配置如此麻煩,換一台機器,就要重來一次,費時耗力,很多人想到,能不能從根本上解決問題,軟體可以帶環境安裝,也就是說,安裝的時候,把原始環境一模一樣複製過來,開發人員利用docker可以消除協作編碼時,」在我的機器上可以正常工作」的問題.

映象映象即對當前正常執行環境封裝打包,除了**以外,還有執行文件,執行環境,配置環境,執行依賴包,作業系統發行版,核心等,保證遷移能夠正常執行.

docker映象的設計,使得docker打破過去程式即應用的觀念,通過映象(images)將作業系統核心除外,運作應用程式所需要的系統環境,由下而上打包,達到應用程式跨平台間無縫接軌運作.

使用映象發布ssh服務:

]#mkdir /root/abc/

]#cd /root/abc/

]#vim dockerfile

from docker.io/myos:latest

add local.repo /etc/yum.repos.d/local.repo //add載入檔案內容到容器檔案

必須與dockerfile在同乙個目錄下

run yum -y install openssh-server-7.4p1-16.el7.x86_64 initscripts

run指定後面的命令在容器內執行

run sshd-keygen

run echo 「123456」 | passwd --stdin root

expose 22 //指定埠

cmd ["/usr/sbin/sshd","-d"] //指定映象啟動命令,用 , 表示空格

workdir /var/www/html/ //當使用workdir設定了工作目錄,則下面所有的操作都在該目錄下執行

比如: run touch f1

run cd /tmp/

run touch f2 //當run後面使用cd,則檔案f1,f2都在/root/下,cd無效

製作乙個httpd的服務映象

預設主頁hello nsd1907

設定預設的工作目錄為/var/www/html/

執行指令碼,打包映象

docker build -t centos:latest /root/abc/

固定模式 打標籤 名稱 標籤 dockerfile所在目錄

額外知識

]#/usr/lib/systemd/system/.service //檢視服務啟動命令

-yum search ssh //列出哪些包提供ssh服務

-rpm -ql 軟體名 //列出該軟體都安裝了哪些目錄

-yum provides 檔案 //檢視該檔案由哪個包產生

-/usr/lib/systemd/system/.service //檢視啟動命令

created symlink from /etc/systemd/system/multi-user.target.wants/docker-distribution.service to /usr/lib/systemd/system/docker-distribution.service.

自定義私有映象倉庫

-yum -y install docker-distribution

服務名: docker-distribution 埠: 5000

倉庫配置檔案及資料儲存路徑

-/etc/docker-distribution/registry/config.yml //倉庫配置檔案

-/var/lib/registry //資料儲存路徑

docker主機指定倉庫位址

-vim /etc/sysconfig/docker

-add_registry=』–add-registry 192.168.1.30:5000』 //指定倉庫位址

-insecure_registry=』–insecure-registry 192.168.1.30:5000』 //加密

驗證在docker1上傳映象到映象倉庫

docker2主機利用倉庫映象直接啟動容器.

[docker1 ~]# docker push 192.168.1.30:5000/myos:httpd //上傳映象到倉庫

]# curl //檢視倉庫映象列表

]# curl //檢視指定映象有哪些標籤

[docker2 ~]#docker run -itd 192.168.1.30:5000/myos:httpd //從倉庫中的映象啟動容器

持久化儲存

-docker容器不儲存任何資料

重要的資料請使用外部卷儲存

容器可以掛載真實機目錄或共享儲存為卷

將真實機目錄掛載到容器中提供持久化儲存

–目錄不存在就自動建立

–目錄存在就直接覆蓋掉

共享儲存

1.使用nfs共享儲存技術共享檔案目錄給docker機,目錄許可權為rw

2.客戶端掛載共享,並將共享目錄對映到容器中.

]#docker run -v /data:/data -it docker.io/centos bash //使用 -v選項對映磁碟到容器中

真實機目錄,容器目錄

網路]#docker network create --subnet=10.10.10.0/24 docker1 //建立docker1交換機

]#docker run -it myos:latest //啟動與docker0 連線的容器

]#docker run -it --network=docker1 myos:latest //啟動與docker1 連線的容器

]#docker info //檢視dock所有資訊

]#doker search -s 30 tomcat [–no trunc] //查詢使用超過30的映象,或顯示完整的id

]#docker logs -t(顯示時間) -f(持續不間斷,實時顯示) 容器id //持續不間斷的檢視容器日誌

]#docker cp 容器id:路徑 宿主機路徑 //拷貝容器資料到宿主機

個人常用docker命令筆記

docker search seata 結果如圖1 指定名稱刪除映象 f 強制刪除 docker rmi f seataio seata server 1.2.0 根據id刪除 docker rmi 35sfaf3sgsd2gsdf docker rmi docker images grep non...

Docker(個人備忘)

ubuntu server 20.04 docker安裝ubuntu docker 安裝 docker配置支援nvidia gpu add the package repositories distribution etc os release echo id version id curl s l...

docker安裝wordpress個人部落格

docker安裝wordpress 1.安裝docker 2.使用國內映象倉庫 執行服務 docker run name wordpress1 e wordpress db host 172.17.199.38 3306 e wordpress db user root e wordpress db...