摘要:以下都會使用到容器,所以執行以下指令查看容器或者容器名稱檢查環節變量查看日志備份恢復備份使用進入容器沒有剩余磁盤空間使用以下指令刪除容器和鏡像刪除所有容器刪除未使用的鏡像清理日
以下都會使用到容器 id,所以執行以下指令查看容器 id 或者容器名稱
[yexiaobaideMacBook-Pro: ~]$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 20ec96201fa3 swarm "/swarm manage token 26 hours ago Up 26 hours 0.0.0.0:2222->2375/tcp suspicious_sinoussi 7e90d4598a74 swarm "/swarm join -addr=1 26 hours ago Up 26 hours 2375/tcp sad_cray abf7cdbe5d1c rancher/server "/usr/bin/s6-svscan 26 hours ago Up 26 hours 3306/tcp, 0.0.0.0:8080->8080/tcp ecstatic_morse檢查環節變量
sudo docker inspect --format "{{.Config.Env}}" abf7cdbe5d1c查看日志
sudo docker logs -f abf7cdbe5d1c備份
sudo docker run --rm -v /tmp:/backup --volumes-frombusybox tar -cvf /backup/backup.tar
恢復備份
sudo docker run --rm -v /tmp:/backup --volumes-from使用 docker exec 進入容器busybox tar -xvf /backup/backup.tar
sudo docker exec -it ecstatic_morse bash沒有剩余磁盤空間
使用以下指令刪除容器和鏡像
sudo docker ps -aq | xargs sudo docker rm # 刪除所有容器 sudo docker images -aq -f dangling=true | xargs sudo docker rmi # 刪除未使用的鏡像
清理日志 - 非 root 權限
sudo su -c "echo "" > $(sudo docker inspect --format="{{.LogPath}}" ecstatic_morse)"使用別名
在 .zshrc 或者 .bashrc 中寫入以下腳本:
alias dockercleancontainers="docker ps -aq | xargs docker rm" alias dockercleanimages="docker images -aq -f dangling=true | xargs docker rmi" alias dockerclean="dockercleancontainers && dockercleanimages" alias docker-killall="docker ps -q | xargs docker kill" # runs docker exec in the latest container function docker-exec-last { docker exec -ti $( docker ps -a -q -l) /bin/bash } function docker-get-ip { # Usage: docker-get-ip (name or sha) [ -n "$1" ] && docker inspect --format "{{ .NetworkSettings.IPAddress }}" $1 } function docker-get-id { # Usage: docker-get-id (friendly-name) [ -n "$1" ] && docker inspect --format "{{ .ID }}" "$1" } function docker-get-image { # Usage: docker-get-image (friendly-name) [ -n "$1" ] && docker inspect --format "{{ .Image }}" "$1" } function docker-get-state { # Usage: docker-get-state (friendly-name) [ -n "$1" ] && docker inspect --format "{{ .State.Running }}" "$1" } function docker-memory { for line in `docker ps | awk "{print $1}" | grep -v CONTAINER`; do docker ps | grep $line | awk "{printf $NF" "}" && echo $(( `cat /sys/fs/cgroup/memory/docker/$line*/memory.usage_in_bytes` / 1024 / 1024 ))MB ; done } # keeps the commmand history when running a container function basher() { if [[ $1 = "run" ]] then shift docker run -e HIST_FILE=/root/.bash_history -v $HOME/.bash_history:/root/.bash_history "$@" else docker "$@" fi } # backup files from a docker volume into /tmp/backup.tar.gz function docker-volume-backup-compressed() { docker run --rm -v /tmp:/backup --volumes-from "$1" debian:jessie tar -czvf /backup/backup.tar.gz "${@:2}" } # restore files from /tmp/backup.tar.gz into a docker volume function docker-volume-restore-compressed() { docker run --rm -v /tmp:/backup --volumes-from "$1" debian:jessie tar -xzvf /backup/backup.tar.gz "${@:2}" echo "Double checking files..." docker run --rm -v /tmp:/backup --volumes-from "$1" debian:jessie ls -lh "${@:2}" } # backup files from a docker volume into /tmp/backup.tar function docker-volume-backup() { docker run --rm -v /tmp:/backup --volumes-from "$1" busybox tar -cvf /backup/backup.tar "${@:2}" } # restore files from /tmp/backup.tar into a docker volume function docker-volume-restore() { docker run --rm -v /tmp:/backup --volumes-from "$1" busybox tar -xvf /backup/backup.tar "${@:2}" echo "Double checking files..." docker run --rm -v /tmp:/backup --volumes-from "$1" busybox ls -lh "${@:2}" }使用 COPY 而不是 ADD 在下載之后和開始使用之前使用 checksum 檢查
ENV JENKINS_VERSION 1.625.3 ENV JENKINS_SHA 537d910f541c25a23499b222ccd37ca25e074a0c RUN curl -fL http://mirrors.jenkins-ci.org/war-stable/$JENKINS_VERSION/jenkins.war -o /usr/share/jenkins/jenkins.war && echo "$JENKINS_SHA /usr/share/jenkins/jenkins.war" | sha1sum -c -在相同 layer 清理
RUN apt-get update && apt-get install -y curl python-pip && pip install requests && apt-get remove -y python-pip curl && rm -rf /var/lib/apt/lists/*記錄日志到stdout
# forward request and error logs to docker log collector RUN ln -sf /dev/stdout /var/log/nginx/access.log RUN ln -sf /dev/stderr /var/log/nginx/error.log參考
原文:http://blog.labianchin.me/2016/02/15/docker-tips-and-tricks?mkt_tok=3RkMMJWWfF9wsRonuqTMZKXonjHpfsX57uglXKa%2FlMI%2F0ER3fOvrPUfGjI4DSsprI%2BSLDwEYGJlv6SgFQ7LMMaZq1rgMXBk%3D
https://zwischenzugs.wordpress.com/2015/06/14/my-favourite-docker-tip/
https://website-humblec.rhcloud.com/docker-tips-and-tricks/
https://docs.docker.com/engine/articles/dockerfile_best-practices/
http://www.projectatomic.io/docs/docker-image-author-guidance/
http://crosbymichael.com/dockerfile-best-practices.html
http://crosbymichael.com/dockerfile-best-practices-take-2.html
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26522.html
摘要:最近看了這篇文章,了解到容器內的一個進程對應于宿主機器上的一個進程。在宿主機器上的進程擁有者和在容器內的進程擁有者都是,同理,我們已經驗證了第二點。 最近看了這篇文章:Understanding how uid and gid work in Docker containers,了解到: docker容器內的一個進程對應于宿主機器上的一個進程。 容器內的進程,與相對應的宿主進程,由...
摘要:本文將介紹精簡容器鏡像的必要性并以基于的應用為例描述最小化容器鏡像的常用技巧。經過這一優化,最終鏡像的大小為。 背景 隨著容器技術的普及,越來越多的應用被容器化。人們使用容器的頻率越來越高,但常常忽略一個基本但又非常重要的問題 - 容器鏡像的體積。本文將介紹精簡容器鏡像的必要性并以基于 spring boot 的 java 應用為例描述最小化容器鏡像的常用技巧。 精簡容器鏡像的必要性 ...
摘要:但在生產環境下,如果不指定保存依賴的版本號會存在問題。它會生成一個文件,不僅記錄了當前環境中使用的模塊精確的版本號,還記錄了這些模塊的其他依賴的版本,以此類推。 本文來自國外新手向技術博客RisingStack。有興趣的同學可點擊原文查看。 相信npm install是npm-cli最常用的功能,但其實它還有很多其他可挖掘的地方。在本文中,你將會學習如何在應用開發的整個生命周期中——...
摘要:現代建議使用虛擬化工具來搭建同生產環境一模一樣的開發環境。現代建議我們使用的進程管理器來部署應用,并存放在這樣的服務器。 以下內容摘自《Modern PHP》現代PHP,也加入了我的一些理解,如有錯誤,麻煩提出,我好改正 避免使用ftp 在這之前,我們使用ftp進行代碼管理,修改一個PHP文件,然后使用ftp上傳,這非常危險。 現代PHP建議使用版本管理軟件進行代碼版本管理,例如使用G...
摘要:本系列教程翻譯自,系列共有九篇,本文譯自第二篇。總結本章知識介紹了最基本的十五個命令,接下來的教程將會陸續介紹如何在中運行一個應用以及其他的命令。接下來會在本系列教程結束后補充幾篇應用的實例。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第二篇 Part 2: The 15 Commands。 該系列所有文章將參考其他學習...
閱讀 1893·2021-11-22 15:25
閱讀 1250·2021-11-19 09:40
閱讀 1857·2021-09-27 13:57
閱讀 985·2021-09-22 15:10
閱讀 972·2021-08-16 11:01
閱讀 2971·2021-07-23 17:51
閱讀 765·2019-08-30 15:55
閱讀 818·2019-08-30 13:58