docker基礎(chǔ)
一锈玉、docker:開源的容器引擎,輕量級的虛擬機(jī),可以看做一個進(jìn)程,啟動后是容器,沙箱環(huán)境
二绑青、虛擬機(jī)VMware:隔離整個運(yùn)行環(huán)境,docker隔離不同的應(yīng)用程序
三类咧、docker占用系統(tǒng)資源小
四丐谋、docker架構(gòu)與核心組件
- 1.客戶端:linux終端,用來操作docker
- 2.docker服務(wù)器:管理docker容器和docker鏡像
- 3.docker鏡像:可以從鏡像倉庫docker hub下載
- 4.docker容器:通過docker命令,將磁盤上的docker鏡像啟動,啟動后就是容器,容器中運(yùn)行的是一個操作系統(tǒng)
五还惠、nginx鏡像:有一個操作系統(tǒng),上邊安裝了nginx
六饲握、文件擁有者 所屬組 其他用戶 讀 寫 執(zhí)行 rwx
七、查看docker版本時,遇到的權(quán)限問題:var/run/docker.sock 默認(rèn)權(quán)限660,其他用戶沒有讀寫權(quán)限,解決方案:
- 1.在指令前加sudo: sudo docker version
- 2.將當(dāng)前用戶添加到docker組中: sudo gpasswd -a itcast docker
- 3.將文件權(quán)限改成666,讓其他用戶有讀寫權(quán)限: sudo chmod 666 docker.sock
八蚕键、docker服務(wù)相關(guān)的操作命令:
- 1.啟動 : sudo systemctl start dokcer
- 2.關(guān)閉 : sudo systemctl stop dokcer
- 3.重啟 : sudo systemctl restart dokcer
- 4.查看狀態(tài) : sudo systemctl status dokcer
docker鏡像管理
九救欧、搜索鏡:docker search ubuntu
十、獲取鏡像:docker pull ubuntu
- 1.文件下載到 var/lib/docker中,多個文件的形式,存放在這里,刪除刪這個文件夾下的文件,普通用戶沒有權(quán)限查看,需要切換到root用戶進(jìn)行查看, su - root,環(huán)境變量一起切換
- 2.sudo passwd root 重置root用戶密碼,有sudo權(quán)限的普通用戶才可以修改root用戶的密碼,要想讓用戶有sudo權(quán)限,需要進(jìn)行配置
十一锣光、查看鏡像:
- 1.docker images
- 2.docker image ls
十二笆怠、鏡像別名:docker tag nginx:latest xxx:v1.0
十三、刪除鏡像:
- 1.docker rmi nginx:latest
- 2.docker rmi 94e814e2efa8
- 3.如果鏡像有別名,鏡像別名不同,ID相同,此時只能通過鏡像名刪除,當(dāng)只剩下一個名字時,鏡像才徹底刪除
十四誊爹、鏡像導(dǎo)出:docker save -o ./mynginx.img nginx:latest
十五蹬刷、鏡像導(dǎo)入:
- 1.docker load -i mynginx.img
- 2.docker load < mynginx.img
十六、查看鏡像詳細(xì)信息:docker inspect ubuntu:latest
docker容器管理
十七频丘、查看容器
- 1.docker ps 查看在running狀態(tài)的容器
- 2.docker ps -a 查看在所有狀態(tài)的容器
- 3.docker ps -aq 查看在所有狀態(tài)的容器,只顯示容器ID
十八办成、容器創(chuàng)建
- 1.docker create -it --rm --name myubuntu ubuntu:latest bash
- 2.docker create -i -t --rm --name myubuntu1 ubuntu:latest bash
十九、啟動已經(jīng)創(chuàng)建的容器
- 1.docker start -ai myubuntu 啟動容器,關(guān)聯(lián)標(biāo)準(zhǔn)輸出/錯誤,標(biāo)準(zhǔn)輸入,會自動進(jìn)入容器內(nèi)部 ctrl+d退出容器
- 2.docker start myubuntu 啟動容器,沒有關(guān)聯(lián)輸入輸出,不會進(jìn)入容器內(nèi)部
二十搂漠、創(chuàng)建新容器并啟動
- 1.docker run -itd ubuntu:latest bash //以守護(hù)進(jìn)程的形式運(yùn)行
- 2.docker run -itd --name xxl1 ubuntu:latest bash //以守護(hù)進(jìn)程的形式運(yùn)行
- 3.docker run -it --name xxl2 ubuntu:latest bash //會直接進(jìn)入容器內(nèi)部
- 4.docker run -it --rm --name xxl3 ubuntu:latest bash //容器終止運(yùn)行的時候, 自動被刪除
容器的暫停:docker pause 容器名字或者容器ID
容器的取消暫停:docker unpause 容器名字或者容器ID
容器的重啟:
- 1.docker restart -t 30 容器名字或者容器ID
- 2.docker restart 容器名字或者容器ID
容器的關(guān)閉:docker stop -t 30 容器名字或者容器ID
容器的終止:docker kill 容器名字或者容器ID
區(qū)別:一個有延時,一個沒有延時
刪除未運(yùn)行非 running(up) 的容器 : docker rm 容器名/容器ID
刪除運(yùn)行的容器:docker rm -f 容器名/容器ID
批量刪除容器
1.docker rm $(docker ps -aq) -f
2.docker rm `docker ps -aq` -f
進(jìn)入容器
#1.創(chuàng)建并進(jìn)入: (非守護(hù)進(jìn)程的形式創(chuàng)建并運(yùn)行,會直接進(jìn)入容器內(nèi)部) - 使用頻率低
docker run -it --rm --name myxx ubuntu bash
#2.創(chuàng)建并啟動容器,以守護(hù)進(jìn)程的形式
docker run -itd --rm --name myxx ubuntu bash
#手動進(jìn)入容器中
docker exec -it 27e729b90b49 bash
退出容器
# 第一種方式
在終端輸入: exit
# 第二種方式: ctrl+D
1.查看容器的日志信息:docker logs 容器名/容器ID
2.查看容器的詳細(xì)信息:docker inspect 容器名/容器ID
3.查看容器的端口信息:docker port 容器名/容器ID
4.容器重命名:docker rename 27e729b90b49 mynewub
基于容器的鏡像導(dǎo)入導(dǎo)出
1.鏡像的導(dǎo)出:
- docker export -o myub.img 7d94e1faf186
- docker export -o ./myub01.img 7d94e1faf186
- docker export 7d94e1faf186 > myub02.img
2.鏡像的導(dǎo)入: cat myub.img | docker import - myub:v1.0
與直接對鏡像導(dǎo)入導(dǎo)出對比:
1.save 和 export
- 使用save導(dǎo)出鏡像, 不能對鏡像進(jìn)行修改
- export通過容器導(dǎo)出, 原始鏡像可以通過啟動容器進(jìn)行修改
- 通過export導(dǎo)出鏡像, 會丟失鏡像的歷史記錄
- 如果沒有通過容器對進(jìn)行做任何修改, export導(dǎo)出的鏡像小
2.load 和 import
- 都是將導(dǎo)出的鏡像導(dǎo)入到本地鏡像倉庫
- 如果使用load進(jìn)行導(dǎo)入: 鏡像名無法修改
- import導(dǎo)入鏡像: 鏡像名是可以修改的