.NET 中Worker Service的使用入門
阿新 • • 發佈:2021-05-14
-
Docker 常用命令
-
檢視所有映象:“docker images”
-
刪除image
- docker rmi IMAGE ID
- 若上步無法刪除,則需要先刪除執行過該images的container,先利用“docker ps -a”檢視退出的container;再利用“docker rm CONTAINER ID”;再利用上步刪除images
- 若發現無法刪除container,利用“docker ps”檢視正在執行的container,再利用“docker stop CONTAINER ID”關閉container,最後再利用上一步操作完成
-
非root使用者加入docker使用者組省去sudo
-
sudo usermod -aG docker
-
檢視使用者組中有木有docker組“sudo cat /etc/group | grep docker”
-
確定可以直接執行docekr命令 “docker info”
-
若提示沒有許可權,則修改許可權“sudo chmod a+rw /var/run/docker.sock”
-
-
docker基本概念
- 映象(Image):特殊的檔案系統,不包含動態資料,類似於面向程式設計中的“類”
- 容器(Container):容器是映象執行時的實體,可以被建立,啟動,停止,刪除,暫停。類似於面向程式設計中的“例項”。容器的實質是程序,擁有獨立的名稱空間,root檔案系統,網路配置等,處於一個隔離環境中。
- 倉庫(Repository):映象構成後,很容易在本機上執行,為了在其他伺服器上使用映象,需要一個集中的儲存,分發映象的服務Docker Registry 。倉庫可用於儲存映象,一個倉庫包含多個標籤,每個標籤對應一個映象。利用<倉庫名>:<標籤>指定具體是該軟體的哪個版本的映象。倉庫多以兩段式路徑出現,如jwilder/nginx-proxy,前者使用者名稱,後者軟體名。
-
docker 執行
- 有了映象後,以該映象為基礎啟動一個容器:“docker run -it --rm ubuntu:18.04 bash”
- -it:表示-i(互動式操作)和-t(終端),-it表示互動式終端
- --rm:容器退出後即刪除
- ubuntu:18.04:映象:版本
- bash:使用bash作為互動式shell,一般寫作/bin/bash
- 退出容器:exit
- 有了映象後,以該映象為基礎啟動一個容器:“docker run -it --rm ubuntu:18.04 bash”
-
使用Dockerfile定製映象
- 新建文字檔案:“mkdir test && touch Dockerfile && vi Dockerfile”
- 編輯Dockerfile
- FROM:指定基礎映象。為了使映象體積更小,可以使用:“FROM scratch”
- RUN:執行命令列命令,分為shell格式和exec格式,前者為“RUN <命令>”,後者“RUN ["可執行檔案",“引數1”,“引數2”]”,類似於函式呼叫的格式。為了降低映象層數,儘量減少RUN的數量,不同命令可以使用“&&”串起來,用一個RUN將其放在一層。Dockerfile支援Shell類的行尾新增 \的命令換行,行首新增#註釋。
- COPY:將從構建上下文目錄中
<源路徑>
的檔案/目錄複製到新的一層的映象內的<目標路徑>
位置,例如 COPY src pdffigure-detection,需要提前指定工作目錄,"WORKDIR /apps" - ADD:類似於COPY,但是源路徑可以是URL,一般不用
- CMD:ubuntu中CMD預設為/bin/bash
- ENV:設定環境變數
- 構建映象:在Dockerfile目錄下直接:“docker build -t nginx:v3 .”,也可以用-f指定Dockerfile路徑,例如:“docker build -f Dockerfile -t nginx:v3 .”
-
其他映象製作方法
- 從rootfs壓縮包匯入:docker import 壓縮包(壓縮包下載地址)倉庫名:標籤
- 儲存映象為壓縮包:docker save Image(映象名) 壓縮名 ,例如"docker save hello-world" a.tar
- 從壓縮包載入映象:docker load -i 壓縮包地址 ,例如"docker load -i a.tar"
-
docker的容器與本地檔案複製
- 本地to容器:docker cp path Container ID:path,例如 "docker cp /home/wps/ssh.txt 1b4cd38be498:/apps/k.txt"
- 容器to本地:docker cp Container ID:path path,例如"docker cp 1b4cd38be498:/apps/requirements.txt /home/wps/r.txt"
-
容器操作
-
檢視所有容器:docker ps -a
-
檢視當前開啟的容器:docker ps
-
開啟容器:docker start Container ID
-
停止容器:docker stop Container ID
-
進入容器:docker attach Container ID
-
互不干擾的進入容器:docker exec -it Container ID bash
-
匯出容器到本地:docker export Container ID > 壓縮包名
-
匯入容器快照:docker import 壓縮包 倉庫名:標籤
-
刪除容器:先終止容器,再刪除:"docker rm Container ID"
-
容器儲存為映象:docker commit [Container ID] [倉庫名:標籤]
-
-
倉庫操作
- 查詢官方倉庫映象:docker search 映象名
- 登入:docker login
- 拉取映象:docker pull 映象名
- 推送映象:docker tag 映象名 username/映象名,例如:docker tag ubuntu:18.04 username/ubuntu:18.04;也可以登入後直接push,例如:docker push username/ubuntu:18.04