經驗總結 | Docker 使用筆記

2021-12-29 TeamsSix

收錄於話題 #經驗總結 10個

0x00 前言

平時在使用 Docker 時,經常會碰到忘記相關命令的情況,因此平時忘記一個就會記錄一個,經過多年的記錄,Docker 相關的筆記已經記錄了不少。

最近在看代碼審計的時候又提到了 Docker,正好借著這個機會好好的把原來記錄的比較亂的 Docker 筆記整理一下。

如果你也面臨過「在使用 Docker 時,時不時就會忘記某條命令」的情況,那麼我相信本篇文章應該會對你有所幫助。

0x01 安裝1、安裝 Docker

curl -fsSL https://get.docker.com/ | sh

或者

wget -qO- https://get.docker.com/ | sh

在命令中輸入以下命令,如果輸出 helloword 表示 Docker 安裝成功。

docker run ubuntu echo "helloworld"

2、安裝 Docker-Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composedocker-compose --version

3、Docker 設置國內鏡像源

vi /etc/docker/daemon.json
{ "registry-mirrors": ["http://hub-mirror.c.163.com"]}
systemctl restart docker.service

國內加速地址如下:

Docker中國區官方鏡像https:
網易http:
中國科技大學https:
阿里雲容器 服務https:

0x02 使用1、搜索鏡像

2、拉取鏡像

3、查看鏡像文件

查看鏡像層級關係

docker images tree

docker images --tree

4、查看docker所有進程

5、開啟容器

開啟指定容器,這裡的容器名為 Web

啟動所有容器

docker start $(docker ps -aq)

6、進入正在運行的容器

docker 創建的

docker-compose 創建的

container_name 需要在 docker-compose.yml 文件中查看

docker-compose exec container_name bash

7、指定埠啟動創建進入容器

docker run -p 9992:80 -p 8882:8888 -it ubuntu /bin/bashdocker run --name web1 -p 9991:80 -p 8881:8888 -it centos /bin/bash

8、導出導入鏡像

export\import 導入導出

docker export web > /home/docker_web.tardocker import /home/docker_web.tar

save\load 導入導出

docker save 9610cfc68e8d > /home/docker_web.tardocker load < /home/docker_web.tar

export\import 與 save\load 的區別:

9、修改正在運行的容器埠映射

a、停止容器

b、 停止 docker 服務(systemctl stop docker)

c、 修改這個容器的 hostconfig.json 文件中的埠(原帖有人提到,如果 config.v2.json 裡面也記錄了埠,也要修改)

cd /var/lib/docker/3b6ef264a040*     
vi hostconfig.json
"PortBindings":{}
"PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]}

d、啟動docker服務(systemctl start docker)

e、啟動容器

10、文件傳輸

docker cp 本地文件路徑 ID全稱:容器路徑

docker cp ID全稱:容器文件路徑 本地路徑

11、後臺運行docker

啟動全新的容器,該命令會在後臺運行容器,並返回容器ID

對於現有的容器

0x03 卸載1、停止容器

停止指定容器

停止所有容器

docker stop $(docker ps -aq)

2、刪除容器和鏡像

刪除指定容器

docker container rm d383057928b4  

刪除所有已退出的容器

docker rm $(docker ps -q -f status=exited)

刪除所有已停止的容器

docker rm $(docker ps -a -q)

刪除所有正在運行和已停止的容器

docker stop $(docker ps -a -q)docker rm $(docker ps -a -q)

刪除所有容器,沒有任何標準

docker container rm $(docker container ps -aq)

Docker 資源清理

docker container prune    docker image prune        docker network prune      docker volume prune       docker system prune       docker system prune --all --force --volumns     

刪除所有鏡像

docker rmi $(docker images -q)

3、卸載Docker

yum list installed | grep dockeryum -y remove docker.x86_64

4、卸載Docker-compose

rm /usr/local/bin/docker-compose

參考地址:

https://blog.csdn.net/a906998248/article/details/46236687

https://blog.csdn.net/wesleyflagon/article/details/78961990

原文連結:

https://teamssix.com/211028-204606.html

往期推薦

【建議收藏】歷時一年的內網學習筆記合集

內網學習筆記 | 30、跨域安全(完結)

Kerberos 協議詳解與利用

相關焦點

  • 乾貨 Yelp是如何使用Docker的?
    我們使用Celery和RabbitMQ來處理我們的異步任務。Postgres資料庫,使用觸發器的數據驗證和更新通知,以支持我們的同步協議和長輪詢引擎。我們把整個平臺都放到了AWS上,並使用Chef作為我們的主要工具來配置伺服器,管理部署和組織我們的測試、灰度、線上環境。
  • 關於Docker目錄掛載的總結
    pathSee 'docker run --help'.通過docker inspect命令,查看容器「Mounts」那一部分,我們可以得到這個問題的答案。": "z",            "RW": true        }    ],可以看出容器內的/soft目錄掛載的是宿主機上的/var/lib/docker/volumes/test1/_data目錄原來所謂的相對路徑指的是/var/lib/docker/volumes/,與宿主機的當前目錄無關。
  • 使用Docker 運行微信 PC 客戶端
    DoChat(盒裝微信)是一個 Linux 下的 Docker 化的微信 PC Windows 客戶端,項目地址:https://github.com/huan/docker-wechat,當然既然是容器化的
  • 使用Docker(Mac)搭建 Nginx/Openresty - Kafka - kafkaManager
    $ docker-compose --versiondocker-compose version 1.21.2, build 8dd22a9$ docker-machine --versiondocker-machine version 0.14.0, build 9ba6da91.6 Hello Word
  • Docker操作必看,原來這才是正確打開Docker的新方式!
    你可以從本地構建一個鏡像,使用 docker build 命令,下文我們會說到如何構建自己的鏡像,我們先從鏡像倉庫中拉取鏡像,使用 docker pull 命令進行拉取,如下圖所示:docker pull nginx首先我們得找到 docker 的鏡像倉庫,網址:hub.docker.com
  • 編寫Dockerfiles最佳實踐(Docker 18.09) | 附PDF下載
    使用-f指向Dockerfile並指定構建上下文的目錄:mkdir -p dockerfiles contextmv Dockerfile dockerfiles && mv hello contextdocker build --no-cache -t helloapp:v2 -f dockerfiles/Dockerfile
  • Dockerfile企業實戰教程
    一、dockerfile語法詳解Dockerfile 是一個用來構建鏡像的文本文件,文本內容包含了一條條構建鏡像所需的指令和說明。基於Dockerfile構建鏡像可以使用docker build命令。但是, 如果運行 docker run 時使用了 --entrypoint 選項,將覆蓋 entrypoint指令指定的程序。優點:在執行 docker run 的時候可以指定 ENTRYPOINT 運行所需的參數。注意:如果 Dockerfile 中如果存在多個 ENTRYPOINT 指令,僅最後一個生效。
  • Docker用法
    -v:表示目錄映射關係(前者是宿主機目錄,後者是映射到宿主機上的目錄),可以使用多個-v做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然後共享到容器上。-d:在run後面加上-d參數,則會創建一個守護式容器在後臺運行(這樣創建容器後不會自動登錄容器,如果只加-i -t兩個參數,創建後就會自動進去容器)。
  • 0863-如何使用Docker在Windows下快速構建Impala4.0環境
    ,因為Impala4.0的發布同時提供了Docker集群供快速試用 (IMPALA-9793),本文檔主要是根據Github上的Impala項目中docker鏡像快速構建Impala4.0的本地測試環境,測試工具:2.在Windows上準備Docker Desktop環境1.通過以下連結下載docker的安裝包並安裝,安裝過程略,使用以下連結下載安裝包並進行安裝:https
  • 12個docker常用命令!以tomcat為例
    的學習,以下總結了docker常用的一些命令和操作從docker命令使用出發,梳理出如下命令結構圖:1:docker查找鏡像$ docker search tomcat4:啟動一個鏡像$ mkdir -p /usr/local/docker/tomcat/logs /usr/local/docker/tomcat/webapps$ docker run -d -p
  • DOCKER 部署 NSQ
    nsq docker 部署nsq 主要有三個組件: nsqlookupd, nsqd, nsqadmin。
  • 雲計算核心技術Docker教程:Docker 守護進程dockerd的LCOW選項
    可以使用帶有--storage-opt標誌指定的選項來配置特定的存儲驅動程序 。lcow.globalmode指定守護程序是根據需要實例化實用程序VM實例(建議使用默認值,如果省略則默認),還是使用單個全局實用程序VM(性能更好,但具有安全隱患,不建議用於生產部署)。
  • 初探Docker的網絡模式
    bridge模式是docker的默認網絡模式,此模式會為每一個容器設置network namespace、ip地址等,在docker啟動時候,就會在主機上創建一個名為docker0的虛擬網橋,在該主機上啟動的docker容器都會連接到這個虛擬網橋上,這樣就可以和同一宿主機上橋接模式的其它容器進行通信啦。
  • docker安裝Nginx和Tomcat
    #使用docker ps 查看一下啟動中的鏡像docker ps安裝tomcatdocker run -it --rm tomcat:9.0#--rm 這裡代表的意思是用完即刪除 這裡刪除的是容器,但是鏡像還在# tomcat:9.0指定tomcat9.0的版本 不加就直接使用最新的tomcat
  • Dockerfile 最佳實踐
    使用 -f指向 Dockerfile 並指定構建上下文的目錄:mkdir -p dockerfiles contextmv Dockerfile dockerfiles && mv hello contextdocker build --no-cache -t helloapp:v2 -f dockerfiles/Dockerfile
  • Docker命令大整理,附示例!
    docker中有REPOSITORY, TAG, IMAGE,CONTAINER的概念docker命令中的鏡像名,容器名 支持使用Tab鍵進行聯想1 Docker容器 docker中默認的命令是對容器進行操作 ,現在看到容器相關的命令是默認沒有container的。
  • 雲計算核心技術Docker教程:解決Windows下docker埠映射問題
    在Windows系統下安裝docker並嘗試在其中運行Nginx服務,在映射完畢之後在主機的瀏覽器中,打開localhost:port無法訪問對應的服務。
  • 分享用Docker部署大桌子協同辦公平臺的一些經驗
    找到方向後,然後就是開始安裝和部署了,因為我的FTP伺服器用的win10的系統,所以考慮加個虛擬機,把onlyoffice用docker打包部署到Linux虛擬機,大桌子的PHP應用部署在真實伺服器上,用XAMPP集成的Apache+MySql+Php環境調用虛擬機上的onlyoffice服務(當然大家也可以不用集成環境,去獨立安裝環境組建也是一樣的;如果使用人數較多
  • 學習Docker就應該掌握的dockerfile語法與指令
    原有指令 MAINTAINER 已經放棄使用,用 LABEL maintainer="hogwarts@testing-studio.com" 替代。USER:指定運行容器時的用戶名或 UID,後續 RUN 也會使用指定用戶。RUN:RUN 命令是 Dockerfile 執行命令的核心部分。它接受命令作為參數並用於創建鏡像。
  • 使用 Docker 和 Elasticsearch 構建一個全文搜索應用程式 | Linux 中國
    2.3 - 添加 Docker-Compose 配置接下來,我們將創建一個 docker-compose.yml 文件來定義我們的應用程式棧中的每個容器。☉ gs-api - 後端應用程式邏輯使用的 Node.js 容器☉ gs-frontend - 前端 Web 應用程式使用的 Ngnix 容器。