經驗總結 | Docker 使用筆記

2021-12-24 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 協議詳解與利用

相關焦點

  • docker學習筆記
    docker學習筆記1 docker環境安裝1.1 安裝yum-utils yum install -
  • 繼續玩NAS——為知筆記docker私有部署升級
    在上次講解自己的NAS使用文章中提到了自己部署了一個docker版的為知筆記來使用,其實部署好之後也是偶爾用用,中途還更換嘗試了其他筆記工具。
  • 【20210109】Docker學習筆記
    安裝Docker3.1 安裝使用yum安裝docker3.2 驗證輸入命令[root@tfdev ~]# docker -vDocker version 1.13.1, build 0be3e21/1.13.13.3 啟動關閉SELinux,這玩意和docker合不來打開selinux的配置文件
  • Docker超詳細學習筆記
    大家好,我是java時光,以下是我吐血總結的Docker學習文檔,有詳細的案例,可以達到更好的學習效果!
  • 經驗分享|使用code-server為Docker容器搭建在線開發環境
    下面先簡單介紹一些Docker的常用指令:docker build:根據Dockerfile文件創建鏡像docker start/stop/restart:啟動/停止/重啟容器docker ps:查看容器列表,默認顯示正在運行的容器,-a顯示所有容器更多更詳細的指令可以查閱:www.runoob.com/docker/docker-command-manual.html
  • Docker方式安裝XXL_JOB分布式調度程序避坑之老何總結
    安裝方式是有坑的,所以在解決後覺得有必要總結下,一方面其它人在用docker安裝xxl_job時可以避坑,二方面也算是老何的個人總結學習筆記了。使用xxl_job的第一步是要先要導入xxl_job官方提供的初始化sql建庫建表語句老何是選擇的2.3.0對應的分支版本的sql,實際我們選擇master分支也可以,原因就是2.3.0實際上就是目前xxl_job最新的版本,也就是master穩定版本
  • Docker實戰筆記
    此Docker系列學習筆記,根據Reboot教育 (http://www.51reboot.com/)PC大神的運維自動化部分課程整理而成
  • docker筆記
    除非使用 docker run --net=<NETWORK>選項另行指定,否則 Docker 守護進程默認情況下會將容器連接到此網絡。在主機上使用 ifconfig命令,可以看到此網橋是主機的網絡堆棧的一部分。        none     網絡在一個特定於容器的網絡堆棧上添加了一個容器。該容器缺少網絡接口。
  • Docker 實戰總結(非常全面)
    a)出生不同Google根據其在Linux上容器管理經驗,改造到docker管理上,就是kubernetes。他的在許多方面表現良好,最重要的是構造於Google多年的寶貴經驗只上。kubernetes並不是為了docker寫的,kubernetes把集群帶到了一個全新的高度,代價是學習曲線比較陡。docker-swarm 使用了一個不同的方式,它是docker原生的集群工具。
  • IFTTT在開發環境中的Docker使用經驗
    例如創建一個dev machine我們使用:docker-machine create \--driver virtualbox docker-machine scp \/usr/local/dev-env/docker/bootsync.sh \dev:/tmp/bootsync.shdocker-machine ssh dev \"sudo mv /tmp/bootsync.sh
  • Docker 實戰總結(非常全面),收藏了!
    更多可以參考:docker可視化管理工具推薦2.安裝使用#搜索並下載鏡像docker search portainerdocker pull portainer/portainerGoogle根據其在Linux上容器管理經驗,改造到docker管理上,就是kubernetes。他的在許多方面表現良好,最重要的是構造於Google多年的寶貴經驗只上。kubernetes並不是為了docker寫的,kubernetes把集群帶到了一個全新的高度,代價是學習曲線比較陡。docker-swarm 使用了一個不同的方式,它是docker原生的集群工具。
  • 我的Docker學習筆記(基礎篇)
    簡言之,docker就是用go開發的一種輕量級虛擬化容器。Docker 使用客戶端-伺服器 (C/S) 架構模式。Docker 客戶端會與 Docker 守護進程進行通信。Docker 守護進程會處理複雜繁重的任務,例如建立、運行、發布你的 Docker 容器。
  • Docker學習筆記(二)——Docker安裝
    複製代碼Step 4.2: 安裝指定版本的Docker-CE: (把下面VERSION改成指定版本即可)sudo apt-get -y install docker-ce=[VERSION]複製代碼Step 5: 查看docker是否啟動systemctl status docker複製代碼
  • Docker完結篇:課程總結與展望
    經過一個階段的更新,docker課程已經完全完結了,今天為大家分享的是虛擬化容器計算Nginx+Tomcat完成負載均衡搭建和配置和docker
  • 【Docker實踐精粹】每天使用Docker是什麼感受?
    但Ben Hall將要與大家分享的是——每天使用Docker是什麼樣的感受?以下為PPT及分享內容:Ben Hall是一名資深開發者,具有多年的軟體開發經驗並熟識Javascript,Node.js,Docker 和C#/ASP.NET等技術。
  • Docker 使用 MySQL
    % docker psCONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                               NAMES19949fb03dd9   mysql     "docker-entrypoint.s
  • Docker網絡筆記
    (比如在區域網中找不到一個完全匹配的ip時,可能就會廣播數據報文,廣播的地址就會使用255)所以說,一般情況下,區域網中可以使用的ip為1~2540.0.0.0 迴環地址255.255.255.255 廣播地址二、劃分子網2.1、為什麼要劃分子網
  • 騰訊雲伺服器使用感受,及折騰筆記
    先前有使用 DigitalOcean 以及阿里雲的雲伺服器產品,但初入手騰訊雲伺服器,仍費了些功夫,在此記錄一篇文章,以記載個中使用感受,及折騰感記,希望對後續來折騰的朋友,有所幫助。折騰筆記安裝 Docker安裝 Docker,可以參考文章:Install Docker Engine on Ubuntu。但操作起來頗為麻煩;但基於 snap,就非常方便。
  • 使用windows版Docker並在IntelliJ IDEA使用Docker運行Spring Cloud項目
    前提準備  1.1 首先請確認你的電腦是windows10專業版或企業版,只有這隻有這兩個版本才帶有hyper-v介紹  以往我們如果想要在windows上使用docker,都是使用virual box來創建虛擬機,自從windows10發布以來,微軟宣布了一系列的
  • 02 Docker實戰之使用Docker管理測試環境
    回顧「3個場景快速上手