基礎(chǔ)
啟動容器
docker run -d -t -p 8000:5000 --name demo ubuntu:18.04
run表示啟動一個新的 Docker 容器-d的意思是讓容易在后臺運行-t用于讓一個空白的ubuntu鏡像在后臺運行-p用于指定端口映射,表示在訪問本機(jī)的8000會被轉(zhuǎn)到容器的5000--name XXX指定了容器的名字是 demo
ubuntu:18.04是啟動容器使用的鏡像名, Docker 會自動去鏡像服務(wù)器去下載這個鏡像`解決端口或容器名被占用的方案
docker rm -f XXX端口占用時需要加 -f 表示強(qiáng)制刪除正在運行的容器,名字占用時不用加控制容器
docker exec CONTAINER COMMAND復(fù)制數(shù)據(jù)到容器
docker cp FILE "CONTAINER:PATH"常用操作
docker start XXX啟動容器docker ps查看運行的容器,-a可以查看所有容器docker stop XXX停止容器docker rm -f XXX停止鏡像
Dockerfile(附錄: Dockerfile Sample)
#注釋FROM指定源鏡像 ->FROM ubuntu:18.04RUN構(gòu)建時在鏡像中執(zhí)行的命令 ->RUN apt updateCOPY復(fù)制,會自動創(chuàng)建不存在的目錄 ->COPY app.py /code/app.pyWORKDIR用于指定工作目錄 ->WORKDIR /codeCMD啟動腳本 ->CMD ["python3", "app.py"]構(gòu)建鏡像
docker build -t XXX .,最后有一個.用來指定構(gòu)建鏡像時的目錄為本機(jī)當(dāng)前目錄docker images, 查看本機(jī)存儲的鏡像docker run -p 8001:5000 --name demo2 webimage服務(wù)器 Docker 部署
- 準(zhǔn)備三個文件放于 app 目錄下( 附錄: install-docker.sh )
install-docker.sh在 Ubuntu 服務(wù)器安裝 Docker 的腳本Dockerfileapp.pyweb程序- 使用
scp -r app ubuntu@ip:/tmp把文件夾上傳到服務(wù)器sh /tmp/app/install-docker.sh安裝 dockersudo docker build -t webimage .打包sudo docker run -d -p 8000:5000 --name server webimage數(shù)據(jù)卷
docker volume create XXX創(chuàng)建數(shù)據(jù)卷docker volume ls列出所有數(shù)據(jù)卷docker volume rm XXX刪除某個數(shù)據(jù)卷- 在
docker run的時候添加--mount source=XXX,target=/volume使用數(shù)據(jù)卷共享目錄
- 運行一個使用共享目錄的 nginx 容器:
--mount type=bind, source="${PWD}",target=/usr/share/nginx/html/"${PWD}"跨平臺的絕對路徑獲取方式,加引號防空格- 也可以通過指定文件的方式掛載單文件:
--mount type=bind, source="${PWD}/index.html",target=/usr/share/nginx/html/ test.html- 也可以通過多個
--mount參數(shù)掛載多個文件多容器交互: Compose
Dockerfile Sample:
# 在 Dockerfile 文件中 # 是注釋 # FROM 用于指定構(gòu)建鏡像使用的基礎(chǔ)鏡像 FROM ubuntu:18.04 # RUN 用于在構(gòu)建鏡像的時候在鏡像中執(zhí)行命令 # 這里我們安裝 python3 和 flask web 框架 RUN apt update RUN apt -y install python3 python3-pip RUN pip3 install flask # COPY 相當(dāng)于命令的 docker cp # 把本機(jī)當(dāng)前目錄下的 app.py 文件拷貝到鏡像的 /code/app.py # 和 docker cp 不同的是,COPY 會自動創(chuàng)建鏡像中不存在的目錄,比如 /code COPY app.py /code/app.py # WORKDIR 用于指定從鏡像啟動的容器內(nèi)的工作目錄 WORKDIR /code # CMD 用于指定容器運行后要執(zhí)行的命令和參數(shù)列表 # 這樣從本鏡像啟動容器后會自動執(zhí)行 python3 app.py 這個命令 # 由于我們已經(jīng)用 WORKDIR 指定了容器的工作目錄 # 所以下面的命令都是在 /code 下執(zhí)行的 CMD ["python3", "app.py"] # 你可能會看到有資料介紹一個 ENTRYPOINT 參數(shù)用于指定容器運行后的入口程序 # 但是這個參數(shù)在現(xiàn)在的意義已經(jīng)很小了,請忽略之install-docker.sh Sample:
# 官方安裝指南 Ubuntu 版本 # https://docs.docker.com/install/linux/docker-ce/ubuntu sudo apt update # docker 的源是 https,所以安裝這些軟件用于支持 https 的 apt 倉庫 sudo apt install -y apt-transport-https ca-certificates curl software-properties-common # 添加 Docker 的官方 GPG key curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 設(shè)置官方 Docker 源 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" # 安裝 Docker sudo apt update sudo apt install -y docker-ce # 如果你想驗證 Docker 安裝好了,可以運行一個 hello-world 容器 # sudo docker run hello-world
Docker 基礎(chǔ)命令
?著作權(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ù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 五、Docker 端口映射 無論如何,這些 ip 是基于本地系統(tǒng)的并且容器的端口非本地主機(jī)是訪問不到的。此外,除了...
- 《Docker從入門到實踐》閱讀筆記 原書地址: https://yeasy.gitbooks.io/docker...
- 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
- 劫后余生是一種怎樣的體驗? 這個答案真是深得民心,現(xiàn)在回想起學(xué)生時代被老師提問的情景,還心有余悸。 英語老師一說出...