Table of Contents
<a id="orge21ea27"></a>
docker的使用
docker在運行命令時需要本機有一個docker服務
啟動該服務
sudo systemctl start docker
設置該服務開機啟動
sudo systemctl enable docker
docker將程序及依賴打包進image
列出docker所有的image
docker image ls
因為docker 需要root權(quán)限, 每次都要輸入sudo 比較麻煩, 可以將當前用戶加入docker組
sudo usermod -aG docker $USER
完成之后需要注銷再登錄, 就能不帶sudo執(zhí)行docker命令了, 好像也可以執(zhí)行newgrp docker來完成, 沒試過
官網(wǎng)
<a id="orgfef36dd"></a>
image 相關(guān)
官方image倉庫
換源: docker國內(nèi)
mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
拉取鏡像 docker image pull <repository>:<tag> 名字:標簽 標簽不指定的話就是latest
列出鏡像 docker image ls
REPOSITORY:表示鏡像的倉庫源
TAG:鏡像的標簽
IMAGE ID:鏡像ID
CREATED:鏡像創(chuàng)建時間
SIZE:鏡像大小
創(chuàng)建一個鏡像 Dockerfile
<a id="org77697de"></a>
容器
一個鏡像跑起來就是一個容器
啟動鏡像(docker run [-t -i] 倉庫/名字:標簽 命令)
一但重啟就會恢復到原來的狀態(tài)
<a id="org1a8538c"></a>
run 參數(shù)解釋
docker run –help 查看全部幫助
-t 以終端/偽終端運行
-i 可交互的
-d 后臺執(zhí)行
-
-e 指定環(huán)境變量列表
docker run -e xx=10 -t -i ubuntu /bin/bash
echo $xx # 10 -p phome:pdocker 將端口內(nèi)部端口pdocker映射為外部端口phome
–name 給容器指定一個好記的名字
<a id="orgc035495"></a>
創(chuàng)建一個鏡像
-
將指定容器提交為新的鏡像
docker commit -m="注釋" -a="作者" 容器id 倉庫/名字:標簽
-
從頭創(chuàng)建一個全新鏡像
新建一個Dockerfile
FROM 從一個基礎鏡像開始
MAINTAINER 維護者 郵件
RUN 執(zhí)行命令
EXPOSE 暴露的端口
ENV 設置環(huán)境變量
USER 設置uid
VOLUME 訪問宿主機上的目錄
WORKDIR CMD的執(zhí)行路徑
CMD 在鏡像生成的容器中運行
命令必須大寫, 每個命令是一層
其他命令:參考自
ADD A B 將文件移動到容器 A是宿主機文件,或url, 如果是url的話會下載內(nèi)容 B是容器位置
ENTRYPOINT 一個鏡像只能有一個該參數(shù), 以最后面的為準, 當有CMD 時, 可以在CMD中只寫參數(shù), 不寫執(zhí)行的命令, 這樣會將該參數(shù)傳遞給ENTRYPOINT
<a id="org36e37ce"></a>
查看所有的容器
docker ps -a # 查看所有容器 包括已經(jīng)關(guān)閉的
docker ps # 查看正在運行的容器
會顯示如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b0ea2a005eb7 ubuntu "/bin/bash" 6 minutes ago Exited (0) 4 minutes ago graciouslehmann
ed3bd8d910f9 ubuntu "-t -i /bin/bash" 6 minutes ago Created ferventcori
<a id="org0d5f4a8"></a>
查看容器的操作歷史
docker logs 容器名字/ID(docker ps [-a] 查詢)
<a id="orgd3881f6"></a>
在外部停止容器
docker stop [OPTIONS] CONTAINER [CONTAINER…]
停止一個或多個容器
參數(shù) -t, –time 延時xx秒停止
<a id="orgf331187"></a>
其他指令
通過docker展示全部可用操作
docker 指令 –help 查看詳細指令幫助
attach 加入一個正在運行的容器
build 從DockerFile創(chuàng)建一個image
commit 將一個改變后的容器提交為image
cp 從本地將文件/夾拷貝到容器
create 創(chuàng)建一個新的容器
port 查看容器端口映射到宿主機的哪個端口 docker port nostalgicmorse 5000 –> 0.0.0.0:49155 容器5000端口映射在了49155端口
rm 刪除一個停止的容器
restart 重新啟動一個或多個容器
rename 修改容器的名字
images 本地共享
將鏡像導出為文件
docker save -o file_name.zip image_name
將文件加載為鏡像
docker load -i file_name.zip
或者:
docker load < file_name.zip