日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker部署配置相关使用总结

發布時間:2025/5/22 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker部署配置相关使用总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Docker部署配置相關使用總結

創建并啟動容器

使用 docker run 命令來創建并啟動一個容器:

$ docker run -it centos /bin/echo 'hello world' hello world

-t 參數讓 Docker 分配一個偽終端,并綁定到容器的標準輸入上,-i 參數讓容器的標準輸入持續打開。

$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES df84684c3888 centos "/bin/echo 'hello wo…" 10 seconds ago Exited (0) 7 seconds ago admiring_noyce

docker ps 命令列出當前的容器,可以看到,剛剛執行的容器輸出完信息之后就直接退出了。那有沒有辦法讓容器在后臺執行呢?答案當然是可以的。

使用 -d 參數讓容器在后臺,以守護進程的方式執行,這也是在工作中最常用到的。

$ docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done" fcb07a324388d58883e212ff5675ad7947a22c731f677d1a37ff7bc3d8bfa9a7$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fcb07a324388 centos "/bin/sh -c 'while t…" 6 seconds ago Up 5 seconds beautiful_northcutt

這樣容器就在后臺運行了。

還有一種方式,使用 docker create 命令創建容器,然后使用 docker start 來啟動容器,兩條命令相當于 docker run 一條,這種方式不常用,就不做更多介紹了。

下面聊聊 docker run 背后的故事,到底這一條命令背后,Docker 都為我們做了哪些操作呢?

  • 檢查本地是否存在指定鏡像,不存在就從公有倉庫下載;
  • 使用鏡像創建并啟動一個容器;
  • 分配一個文件系統,并在只讀的鏡像層外面掛載一層可讀寫層;
  • 從宿主主機配置的網橋接口中橋接一個虛擬接口到容器中;
  • 從地址池配置一個 IP 地址給容器;
  • 執行用戶指定的命令或應用程序;
  • 執行完畢后容器被終止。

進入容器

當容器以后臺方式執行時,使用 docker exec 命令進入到容器中。

$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fcb07a324388 centos "/bin/sh -c 'while t…" 6 seconds ago Up 5 seconds beautiful_northcutt$ docker exec -it fcb07a324388 /bin/bash [root@fcb07a324388 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@fcb07a324388 /]#

進入到容器之后,就是一個 Linux 系統,Linux 支持的命令,容器也基本都支持。

這條命令還是比較重要的,有時候我們的應用出問題了,單純通過 logs 看不出問題的話,就需要我們進入容器,來看看實際情況。

想退出的話,直接 exit 命令就可以了。

還有一個命令是 docker attach,但是它有一個缺點。當多個窗口同時 attach 到同一個容器時,所有窗口都會同步顯示,當某個窗口因命令阻塞時,其他窗口也無法執行操作。

所以,這個命令現在基本也不用了。

停止容器

使用 docker stop 命令來停止一個容器。

$ docker stop fcb fcb $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fcb07a324388 centos "/bin/sh -c 'while t…" 23 minutes ago Exited (137) 4 seconds ago beautiful_northcutt

如果再想啟動的話,使用 docker start。

查看容器

上文已經介紹過了,使用 docker ps 命令查看當前容器。

使用 docker logs 查看容器日志輸出。

使用 docker container inspect 命令查看容器的詳細信息。

使用 docker top 命令查看容器內進程信息,類似 Linux 下的 top 命令。

使用 docker stats 命令查看容器 CPU,內存,儲存等信息。

使用 docker container port 查看容器的端口映射情況。

導入和導出容器

使用 docker export 命令導出一個容器到文件。

$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fcb07a324388 centos "/bin/sh -c 'while t…" 34 minutes ago Up 9 minutes beautiful_northcutt $ docker export -o centos.tar fcb $ ls centos.tar

使用 docker import 命令將容器文件導入成本地鏡像。

$ docker import centos.tar test/centos sha256:f994c062dae063ffb8c97191d951b9beaac73d99023120191dbbc9741d725578 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE test/centos latest f994c062dae0 6 seconds ago 237MB

在上一篇文章中介紹了一個 docker load 命令,同樣是將文件導入成本地鏡像,那二者有什么區別呢?

容器快照文件將丟棄所有歷史記錄和元數據信息,而鏡像存儲文件將保存完整記錄,但體積更大。

刪除容器

使用 docker rm 命令來刪除已經停止的容器,如果容器正在運行,可以加 -f 參數進行強制刪除。

注意事項

  • docker 刪除container或刪除images
    刪除所有不在運行的容器docker rm $(docker ps -a -q)
    暫停容器 docker stop +ID
    刪除鏡像 docker rmi +ID或者docker image rm
    Docker添加環境變量,不是用RUN export的方式,這種方式只在當前層有效,而ENV是貫穿所有setp的
    ENV http_proxy http:
    ENV https_proxy http:

  • 關于這行命令docker build -t iris-classifier $saved_path
    先說$是表示$后面的是一個變量,如果不加則是saved_path字符串
    參數-t是指定name和tag,例如:ner-service:latest,冒號前是name,冒號后是tag,默認是使用當前路徑下的Dockerfile文件進行構建,如果文件不在當前路徑或者名字不叫Dockerfile,則用-f進行指定。$saved_path是指構建image的時候用到的文件,如果在當前目錄下也需要傳一個.
    這個命令會把Dockerfile和當前文件夾的文件傳到deamon,生成一個image再傳回本地,但是這個image不會以實體文件的形式存在當前目錄下,他只是和其他docker run文件一樣放在其他地方,通過docker images可以查看當前所有的images。如果想保存則可以使用save命令

  • 打包docker 鏡像到當前目錄
    docker save ner-service > ner-service.tar
    鏡像導入
    docker load --input ner-service.tar
    鏡像導出和容器導出
    https://www.jianshu.com/p/8408e06b7273
    top命令查看資源占用情況
    docker run -p 5000:5000 ner-service
    -p 5000:5000是把容器的5000端口暴露到本機的5000

Docker ARG vs ENV

構建 Docker 鏡像的的時候有兩種環境變量 ARG 和 ENV, 一種是在運行 build 命令時通過 --build-arg 參數設置的 build-time variables 以及通過在 dockerfile 里面設置 ENV 指令配置的環境變量,本文說明它們之間的區別。

  • ARG
    • Dockerfile 里面的 ARG 指令定義了一個變量,在運行 docker build 命令時使用 --build-arg = 參數將其傳遞給構建器。
    • 這種變量只存在于鏡像構建的時候,一旦鏡像構建完成就失效了,不要使用構建時變量來傳遞諸如 github 密鑰,用戶憑據等機密數據,構建時變量值可以使用 docker history 命令查看。
  • ENV
    • Dockerfile 里面的 ENV 指令將環境變量 設置為值 ,這個變量將在構建階段中所有后續指令的環境中使用。
    • 使用 ENV 設置的環境變量將一直存在于構建鏡像時以及鏡像容器運行時,可以使用 docker inspect 查看設置打的變量。也可以使用 docker run --env = 來更改它們。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Docker部署配置相关使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。