企業(yè)文化手冊(cè)信息流優(yōu)化師是什么
1.Docker的概述
? ? ? ? 用Go語(yǔ)言實(shí)現(xiàn)的開(kāi)源應(yīng)用項(xiàng)目(container);克服操作系統(tǒng)的笨重;快速部署;只隔離應(yīng)用程序的運(yùn)行時(shí)環(huán)境但容器之間可以共享同一個(gè)操作系統(tǒng);Docker通過(guò)隔離機(jī)制,每個(gè)容器間是互相隔離,每個(gè)容器內(nèi)都有一個(gè)屬于自己的文件系統(tǒng),互不影響
2.重要概念
- dockerfile
- image
- container
實(shí)際上你可以簡(jiǎn)單的把image理解為可執(zhí)行程序,container就是運(yùn)行起來(lái)的進(jìn)程。
那么寫(xiě)程序需要源代碼,那么“寫(xiě)”image就需要dockerfile,dockerfile就是image的源代碼,docker就是"編譯器"。
因此我們只需要在dockerfile中指定需要哪些程序、依賴什么樣的配置,之后把dockerfile交給“編譯器”docker進(jìn)行“編譯”,也就是docker build命令,生成的可執(zhí)行程序就是image,之后就可以運(yùn)行這個(gè)image了,這就是docker run命令,image運(yùn)行起來(lái)后就是docker container。
????????基本組成:鏡像 image、容器 container、倉(cāng)庫(kù) repository(共有/私有;存放鏡像的地方)
3.docker命令
docker version # 顯示docker的版本信息
docker info # 顯示docker的系統(tǒng)信息鏡像命令docker images # 查看所有本地的主機(jī)上的鏡像docker search 鏡像名 # 搜索鏡像docker pull 鏡像名[:tag] # 下載鏡像如果不寫(xiě)tag,默認(rèn)就是latestdocker rmi -f 鏡像ID # 刪除指定的鏡像docker rmi -f $(docker images -aq) # 刪除全部的鏡像容器命令(有了鏡像才可以創(chuàng)建容器,直接run就是先創(chuàng)建再啟動(dòng))docker run [可選參數(shù)] 鏡像ID參數(shù)說(shuō)明-a stdin: 指定標(biāo)準(zhǔn)輸入輸出內(nèi)容類型,可選 STDIN/STDOUT/STDERR 三項(xiàng);-d: 后臺(tái)運(yùn)行容器,并返回容器ID;-i: 以交互模式運(yùn)行容器,通常與 -t 同時(shí)使用;-P: 隨機(jī)端口映射,容器內(nèi)部端口隨機(jī)映射到主機(jī)的端口-p: 指定端口映射,格式為:主機(jī)(宿主)端口:容器端口-t: 為容器重新分配一個(gè)偽輸入終端,通常與 -i 同時(shí)使用;--name="nginx-lb": 為容器指定一個(gè)名稱;-m :設(shè)置容器使用內(nèi)存最大值;--net="bridge": 指定容器的網(wǎng)絡(luò)連接類型,支持 bridge/host/none/container: 四種類型;--link=[]: 添加鏈接到另一個(gè)容器;--expose=[]: 開(kāi)放一個(gè)端口或一組端口;--volume , -v: 綁定一個(gè)卷例如docker run -it centos /bin/bash 從容器中退回主機(jī)exit # 直接停止容器并退出Ctrl + P + Q # 不停止容器但退出docker ps # 列出當(dāng)前正在運(yùn)行的容器可選項(xiàng)-a # 列出當(dāng)前正在運(yùn)行的容器+帶出歷史運(yùn)行的容器-n=數(shù)字 # 顯示最近創(chuàng)建的容器-q # 只顯示容器的編號(hào)刪除容器docker rm 容器ID # 刪除指定的容器,不能刪除正在運(yùn)行的容器docker rm -f 容器ID # 強(qiáng)制刪除指定的容器docker rm -f $(docker ps -aq) # 刪除全部的容器docker ps -aq | xargs docker rm # 刪除全部的容器啟動(dòng)和停止容器的操作docker start 容器ID # 啟動(dòng)容器docker start -i 容器ID # 啟動(dòng)一個(gè)已停止的容器,并進(jìn)入交互界面docker restart 容器ID # 重啟容器docker stop 容器ID # 停止當(dāng)前正在運(yùn)行的容器docker kill 容器ID # 強(qiáng)制停止當(dāng)前容器后臺(tái)啟動(dòng)容器docker run -d 鏡像名查看日志docker logs -tf --tail 數(shù)字 容器ID可選項(xiàng)-tf # 顯示日志--tail 數(shù)字 # 顯示的日志的條數(shù)
docker run -d centos /bin/sh -c "while true;do echo hello world;sleep 1;done"
docker logs -tf --tail 10 容器ID # 顯示10條日志
docker logs -tf --tail 10 容器ID # 顯示所有日志
Ctrl + C # 停止輸出日志
查看容器中的進(jìn)程信息docker top 容器ID
查看鏡像元數(shù)據(jù)docker inspect 容器ID
進(jìn)入當(dāng)前正在運(yùn)行的容器docker exec -it 容器ID /bin/bash # 進(jìn)入容器后開(kāi)啟一個(gè)新的終端,可以在里面操作(常用) 參數(shù)說(shuō)明:-d :分離模式: 在后臺(tái)運(yùn)行-i :即使沒(méi)有附加也保持STDIN 打開(kāi)-t :分配一個(gè)偽終端文件是在容器內(nèi)創(chuàng)建的,命令是在主機(jī)上執(zhí)行的。在容器內(nèi)時(shí),可以exit退出,因?yàn)槿萜鲀?nèi)的文件存在與否和容器是否正在運(yùn)行沒(méi)關(guān)系。docker cp 容器ID:容器內(nèi)路徑 目的主機(jī)路徑
從主機(jī)上拷貝文件到容器內(nèi)docker cp 源主機(jī)路徑 容器ID:容器內(nèi)路徑
拷貝是一個(gè)手動(dòng)過(guò)程,未來(lái)我們使用“-v”卷的技術(shù),可以實(shí)現(xiàn)自動(dòng)同步修改容器內(nèi)存
docker stats 容器ID
Ctrl + C退出
docker update --memory 2G --memory-swap -1 容器ID
mac系統(tǒng)無(wú)法設(shè)置超過(guò)2GiB的內(nèi)存,Linux系統(tǒng)可以設(shè)置為系統(tǒng)能提供的最大內(nèi)存
4.centos8安裝docker
把image理解為可執(zhí)行程序,container就是運(yùn)行起來(lái)的進(jìn)程。dockerfile就是image的源代碼,docker就是"編譯器"--1.更新國(guó)內(nèi)源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
yum clean all && yum makecache
--2.卸載舊版本的docker
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
--3.增加源
sudo yum install -y yum-utils
sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
--4.安裝docker(docker的引擎、操作docker的客戶端、docker容器)
--先卸載低版本的runc,要不安裝的時(shí)候會(huì)報(bào)錯(cuò)版本低沖突
yum -y remove runc
sudo yum install docker-ce docker-ce-cli containerd.io
--5.啟動(dòng)docker服務(wù),查看是否成功
sudo systemctl start docker
sudo systemctl enable docker
----客戶查看docker的版本,也確保一下安裝是否成功
docker -v
----查看有沒(méi)有下載的鏡像images
----因?yàn)槭切掳惭b的docker,所以是空列表
docker images
--6.配置docker應(yīng)用鏡像加速
--/etc/docker這個(gè)目錄加入沒(méi)有的話就自己創(chuàng)建一個(gè)
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://kru7klna.mirror.aliyuncs.com"]
}
EOF重新加載
sudo systemctl daemon-reload
sudo systemctl restart docker