10 个冷门但又非常实用的 Docker 使用技巧
在平時的工作中,docker 接觸得很多,除了經常使用的 docker run ,docker stop 等命令,docker 還有很多十分有用但是卻不經常使用的命令,下面就來總結一下:
1. docker top
這個命令是用來查看一個容器里面的進程信息的,比如你想查看一個 nginx 容器里面有幾個 nginx 進程的時候,就可以這么做:
docker?top?3b307a09d20d UID??????PID????PPID????C????STIME??TTY????TIME???????CMD root?????805????787?????0????Jul13???????00:00:00??nginx:?master?process?nginx?-g?daemon?off; systemd+?941?????805?????0???Jul13????????00:03:18??nginx:?worker?process2. docker load && docker save
我一般使用這兩個命令去下載打包 Kubernetes 的鏡像,因為你知道的國內的網速并不像國外那么快。
docker save 可以把一個鏡像保存到 tar 文件中,你可以這么做:
~?docker?save?registry:2.7.1?>registry-2.7.1.tar #同時?docker?load?可以把鏡像從?tar?文件導入到?docker?中 ~?docker?load?<?registry-2.7.1.tar3. docker search
這個命令可以幫助你在命令行中方便的搜索 DockerHub 中的鏡像,比如:
~?docker?search?nginx NAME???????????????????????????????DESCRIPTION?????????????????????????????????????STARS???????????????OFFICIAL????????????AUTOMATED nginx??????????????????????????????Official?build?of?Nginx.????????????????????????13519???????????????[OK] jwilder/nginx-proxy????????????????Automated?Nginx?reverse?proxy?for?docker?con…???1846????????????????????????????????????[OK] richarvey/nginx-php-fpm????????????Container?running?Nginx?+?PHP-FPM?capable?of…???780?????????????????????????????????????[OK] linuxserver/nginx??????????????????An?Nginx?container,?brought?to?you?by?LinuxS…???123 bitnami/nginx??????????????????????Bitnami?nginx?Docker?Image??????????????????????87??????????????????????????????????????[OK] tiangolo/nginx-rtmp????????????????Docker?image?with?Nginx?using?the?nginx-rtmp…???85??????????????????????????????????????[OK] jc21/nginx-proxy-manager???????????Docker?container?for?managing?Nginx?proxy?ho…???73 alfg/nginx-rtmp????????????????????NGINX,?nginx-rtmp-module?and?FFmpeg?from?sou…???71??????????????????????????????????????[OK] nginxdemos/hello???????????????????NGINX?webserver?that?serves?a?simple?page?co…???57??????????????????????????????????????[OK] jlesage/nginx-proxy-manager????????Docker?container?for?Nginx?Proxy?Manager????????53??????????????????????????????????????[OK] nginx/nginx-ingress????????????????NGINX?Ingress?Controller?for?Kubernetes?????????37 ......當然這個功能在國內可能不會特別好用,因為......
4. docker events
這個命令可以幫助你實時獲取 docker 的各種事件信息,比如創建了一個容器什么的。
~?docker?events 2020-07-28T21:28:46.000403018+08:00?image?load?sha256:432bf69f0427b52cad10897342eaf23521b7d973566354118e9a59c4d31b5fae?(name=sha256:432bf69f0427b52cad10897342eaf23521b7d973566354118e9a59c4d31b5fae)5. docker update
當你 docker run 了之后卻發現里面有一些參數并不是你想要的狀態比如你設置的 nginx 容器 cpu 或者內存太小,這個時候你就可以使用 docker update 去修改這些參數。
~?docker?update?nginx?--cpus?26. docker history
當你修改了一個鏡像,但是忘記了每一層的修改命令,或者你想查看一個鏡像是怎么構建的時候就可以使用這個命令,比如:
~?docker?history??traefik:v2.1.6 IMAGE???????????????CREATED?????????????CREATED?BY??????????????????????????????????????SIZE????????????????COMMENT 5212a87ddaba????????5?months?ago????????/bin/sh?-c?#(nop)??LABEL?org.opencontainers.…???0B <missing>???????????5?months?ago????????/bin/sh?-c?#(nop)??CMD?["traefik"]??????????????0B <missing>???????????5?months?ago????????/bin/sh?-c?#(nop)??ENTRYPOINT?["/entrypoint.…???0B <missing>???????????5?months?ago????????/bin/sh?-c?#(nop)??EXPOSE?80????????????????????0B <missing>???????????5?months?ago????????/bin/sh?-c?#(nop)?COPY?file:59a219a1fb7a9dc8…???419B <missing>???????????5?months?ago????????/bin/sh?-c?set?-ex;??apkArch="$(apk?--print-…???52.9MB <missing>???????????5?months?ago????????/bin/sh?-c?apk?--no-cache?add?ca-certificate…???1.85MB <missing>???????????6?months?ago????????/bin/sh?-c?#(nop)??CMD?["/bin/sh"]??????????????0B <missing>???????????6?months?ago????????/bin/sh?-c?#(nop)?ADD?file:a1906f14a4e217a49…???4.81MB7. docker wait
這個命令可以查看容器的退出狀態,比如:
~?docker?wait?7f7f0522a7d0 0這樣你就可以知道這個容器是正常退出的還是異常退出的了。
8. docker pause && docker unpause
當你運行了一個容器但是想要暫停它運行的時候,你就可以使用這個命令。
~?docker?pause?7f7f0522a7d09. docker diff
當你運行了一個容器,但是你不知道容器里修改了哪一些文件的時候可以使用這個命令,比如:
~?docker?diff?38c59255bf6e C?/etc A?/etc/localtime C?/var C?/var/lib A?/var/lib/registry10. docker stats
這個是 docker 內置的監控命令,當你想要查看當前主機下所有容器占用內存和 cpu 的情況的時候就可以使用這個命令。
~?docker?statsCONTAINER?ID????????NAME????????????????????????CPU?%???????????????MEM?USAGE?/?LIMIT?????MEM?%???????????????NET?I/O?????????????BLOCK?I/O???????????PIDS 1c5ade04e7f9????????redis????????????????????????0.08%???????????????17.53MiB?/?47.01GiB???0.04%???????????????10.9GB?/?37GB???????0B?/?0B?????????????4 afe6d4ebe409????????kafka-exporter????????????????0.09%???????????????16.91MiB?/?47.01GiB???0.04%???????????????1.97GB?/?1.53GB?????752MB?/?0B??????????23 f0c7c01a9c34????????kafka-docker_zookeeper?????????0.01%???????????????308.8MiB?/?47.01GiB???0.64%???????????????20.2MB?/?12.2MB?????971MB?/?3.29MB??????28 da8c5008955f????????kafka-docker_kafka-manager?????0.08%???????????????393.2MiB?/?47.01GiB???0.82%???????????????1.56MB?/?2.61MB?????1.14GB?/?0B?????????60 c8d51c583c49????????kafka-docker_kafka????????????1.63%???????????????1.256GiB?/?47.01GiB???2.67%???????????????30.4GB?/?48.9GB?????22.3GB?/?5.77GB?????85 ......原文:http://suo.im/6n2lLa
推薦文章今天給大家推薦6個Spring Boot項目,拿來就可以賺錢!
分享一套基于SpringBoot和Vue的企業級中后臺開源項目,這個項目有點哇塞!
圈子哥推薦一種基于Spring Boot開發OA開源產品,學習/搞外快都是不二選擇!
硬剛一周,3W字總結,一年的經驗告訴你如何準備校招!
總結
以上是生活随笔為你收集整理的10 个冷门但又非常实用的 Docker 使用技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 太火了!MyBatis Plus 为啥这
- 下一篇: 再见,微服务!