Finding max and min in arrays Find the second largest element in an array
阿新 • • 發佈:2020-08-16
Docker指令記錄
對docker指令及踩坑記錄,不包含具體原理及過程。參照https://www.cnblogs.com/clsn/p/8410309.html#auto-id-17有詳細教程。
一、Docker基礎指令
1.映象
1.1 搜尋dockerhub官方映象
docker search nginx
1.2 拉取映象
docker pull nginx
1.3 檢視本地映象
docker images 或 docker image list
1.4 將本地映象匯出成壓縮檔案
docker image save nginx > docker-nginx.tar.gz
1.5 刪除
docker image rm nginx:latest
1.6 匯入映象到本地,-i 表示指定匯入的檔案
docker image load -i docker-nginx.tar.gz
1.7 檢視映象的詳細資訊
docker image inspect nginx
2.容器
關於映象與容器的關係,我認為可以用一句話表達:容器就是映象的例項,一個映象可以建立多個容器,映象類似於快照。
2.1 啟動容器
docker run -d -p 80:80 nginx
-d為後臺執行容器;-p為埠對映,後接對映地址 ip:hostPort:containerPort
2.2 檢視正在執行
docker container ls 或 docker ps
2.3 檢視容器的詳細資訊
docker container inspect 容器名稱/id
2.4 檢視所有的容器
docker ps -a
2.5 停止容器
docker stop 容器名稱/id 或 docker container kill 容器名稱/id
2.6 進入容器(最常用的一種)
docker exec -it 容器id /bin/bash
2.7 退出容器
exit 或快捷鍵:Ctrl+P+Q
2.8 將容器儲存為映象
docker commit 容器ID newimage:v1
3.資料卷
資料卷用來共享容器間的資料,將容器與宿主機之間實現資料共享,使任意一方相應共享地址下資料變化影響對應一方。
3.1 在建立容器時使用資料卷
docker run -d -p 80:80 -v /data/nginx:/usr/share/nginx/html nginx:latest
使用-v表示建立資料卷,宿主機地址為/data/nginx(沒有會自動建立),目標容器內的資料地址在/usr/share/nginx/html。
3.2 建立自定義容器卷
docker volume create customize-nginx-volume
使用時,在建立容器的時候將宿主機地址改為自定義的容器卷的名稱。
3.3 檢視所有容器卷
docker volume ls
3.4 檢視指定容器卷詳細資訊
docker volume inspect customize-nginx-volume
容器變化不會影響資料卷變化,宿主機內的資料卷還在,新建容器時仍可以繼續使用。
3.5 清理資料卷
docker stop edc-nginx // 暫停容器例項
docker rm edc-nginx // 移除容器例項
docker volume rm edc-nginx-vol // 刪除自定義資料卷
4.Dockerfile
編寫Dockerfile檔案可以批量執行Docker指令完成一系列Docker操作,參照https://www.cnblogs.com/panwenbin-logs/p/8007348.html。
4.1 FROM:指定基礎映象(必須為第一個指令)
FROM <映象名稱>:<映象版本(不指定為latest)>
4.2 RUN:構建映象時執行的命令
RUN <命令>
4.3 ADD:複製檔案,壓縮檔案會自動解壓,可以訪問網路資源
ADD <srcPath> <destPath>
4.4 COPY:複製檔案,不會自動解壓和訪問網路資源
COPY <srcPath> <destPath>
4.5 CMD:構建容器之後(容器啟動時),執行的命令
CMD ["可執行檔案地址","引數1","引數2"...]
或
CMD <命令> <引數1> <引數2>
4.6 ENTRYPOINT:配置容器,使其可執行化。
ENTRYPOINT與CMD非常類似,不同的是通過docker run執行的命令不會覆蓋ENTRYPOINT,而docker run命令中指定的任何引數,都會被當做引數再次傳遞給ENTRYPOINT。Dockerfile中只允許有一個ENTRYPOINT命令,多指定時會覆蓋前面的設定,而只執行最後的ENTRYPOINT指令。
ENTRYPOINT ["可執行檔案地址","引數1","引數2"...]
或
ENTRYPOINT <命令> <引數1> <引數2>
4.7 LABEL:為映象新增元資料
LABEL <key>=<value> <key>=<value> <key>=<value> ...
4.8 ENV:設定環境變數
ENV <key> <value>
或
ENV <key>=<value> ...
4.9 EXPOSE:指定於外界互動的埠
配合docker run時-p引數暴露埠
EXPOSE <port> [<port>...]
4.10 VOLUME:用於指定持久化目錄
VOLUME ["容器內資料卷目錄"]
4.11 WORKDIR:設定工作目錄,類似於cd命令
WORKDIR 工作目錄