Docker基本知識

? ? ? ? ? ? ? ? ??Docker由哪些部分組成

Centeros 安裝Docker

1 yum update(yum更新到最新)

2 yum install -y yum-utils? device-mapper-persistent-data lvm2

3? sudo(如果不是root,需要加sudo)yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(設(shè)置yum 源為國內(nèi)阿里云)

4?yum list docker-ce --showduplicates |sort-r (列出所有的docker)

5 yum installdocker-ce-17.12.1.ce

參考此 https://www.cnblogs.com/salmonLeeson/p/11610139.html 配置docker國內(nèi)鏡像加速器

docker服務(wù)相關(guān)的命令(damon)

systemctl start docker(啟動docker)

systemctl status docker(查看docker的狀態(tài))

systemctl stop docker(停止docker)

systemctl restart docker(啟動docker)

systemctl enable docker(開機啟動docker)

docker鏡像相關(guān)的命令

查看本地鏡像 docker images

搜索鏡像 docker search xx(聯(lián)網(wǎng)搜索鏡像)

拉取鏡像(https://hub.docker.com/ 可以查詢鏡像的地址)

刪除鏡像 docker rmi imageid或者docker rmi imagename:tag(version)

刪除全部鏡像:docker image -q(列出全部的鏡像id)

? ? ? ? ? ? ? ? ? ? ? ? ? docker rmi docker image -q

docker容器相關(guān)的命令


根據(jù)鏡像創(chuàng)建容器:

docker run -it --name=tomcattest tomcat:jdk14-openjdk-oracle /bin/bash

1 i(表示沒有客戶端連接時依然保持容器運行)? 2 t(分配終端) 3 --name給容器命名 4 鏡像以及版本? 5 /bin/bash進入容器內(nèi)部。根據(jù)下圖紅色區(qū)域可以看到

通過-it創(chuàng)建的容器,創(chuàng)建后立馬進入容器,退出后,容器也退出

docker run-id?--name=tomcattest1 tomcat:jdk14-openjdk-oracle

docker run --name xx? -d -p 8080:8080(端口) imagename

1 d后臺運行創(chuàng)建容器,通過命令才能進入容器

通過docker exec -it?tomcattest1? /bin/bash?

docker ps 查看正在運行的容器

docker ps -a查看全部的容器

退出容器:在命令行輸入exit

啟動容器 docker start containername

停止容器 docker stop containername

刪除容器 docker rm containername/containerid?

查看容器信息 docker inspect containername

殺死所以正在運行的容器 docker kill $(docker ps -a -q)

刪除所有的容器 docker rm $(docker ps -a -q)

刪除正在運行的容器 docker rm -f $(docker ps -q)


Docker容器卷

宿主機文件或目錄掛載到docker里面

docker run -it --name=xx -v 宿主機目錄:容器目錄 imagename:version

宿主和docker的內(nèi)容保持一致,修改都會互相作用

一個容器可以掛載多個目錄 ,注意 \代表不執(zhí)行命令,繼續(xù)在下一行輸入命令


注意:之前自己踩坑,容器目錄里面是和宿主機一樣的,也是有根目錄,家目錄等,所以掛載后,要進入容器內(nèi)部在對應(yīng)的目錄去查看,如下圖,

通一個數(shù)據(jù)卷可以掛載到不同的容器上,間接的實現(xiàn)容器的互相通信

多容器數(shù)據(jù)進行交換

方法一:掛載到同一個數(shù)據(jù)卷,比較麻煩,對了容器比較多的情況

方法二:配置數(shù)據(jù)卷容器



制作Docker鏡像

容器轉(zhuǎn)為鏡像

docker commit 容器id 鏡像名稱:鏡像版本號

docker save -o 壓縮文件名稱 鏡像名稱:鏡像版本號(轉(zhuǎn)成壓縮文件后)

docker load -i 壓縮文件名稱(測試人員拿到后可以將鏡像轉(zhuǎn)為容器,繼續(xù)使用)

Dockerfile概念

是一個文件,包含一條條的指令,每一條指令構(gòu)建一層,最終構(gòu)建出一個新的鏡像

docker保留字指令詳解

1 自己寫了一個dockfile ,然后使用命令build images?

docker build -f Dockerfile -t mycentos .

2 CMD 和ENTRYPOINT的區(qū)別

? 如果有兩行CMD 命令的話,最后一行會覆蓋前面的命令,如果使用ENTRYPOINT,則是追加命令


用上圖的兩個Dockerfile生成image時,第一個CMD版本的 image run的時候是不支持追加命令,會覆蓋

entrypoint版本支持追加命令,例如在run 命令追加-i ,則代表 curl -s -i http://www.baidu.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容