docker常用命令問題匯總


Docker簡介

docker可以用來創建虛擬環境跑應用,各個應用能起到隔離作用。

使用方法也很簡單,就是獲取鏡像,使用鏡像,配置鏡像,對應的應用就能快速跑起來了

以httpd為例

1.搜索鏡像  docker search httpd

2.獲取鏡像  docker pull httpd  

3.運行鏡像  docker run --name httpdtest -p 80:80 httpd #--name起名字方便識別。-p 80:80 容器端口:宿主機映射端口,可選。

4.容器狀態  docker ps(運行中的容器)或docker ps -a(所有狀態的容器)

 5.進入容器  docker exec -it 容器id bash  #通過bash進入容器,容器id可通過docker ps獲取

 6.刪除鏡像  docker rmi 鏡像id

7.重啟容器  docker restart 容器id

8.文件復制  docker cp 容器id:/容器文件目錄 /宿主機目錄   #將容器內部的文件復制到宿主機目錄下

       docker cp /宿主機目錄  容器id:/容器文件目錄  #將宿主機目錄內容復制到容器內部目錄

9.系統鏡像  docker run -d -it --name centos7 centos /bin/bash  #運行centos鏡像,-d后台運行,-it互動終端方式,/bin/bash啟動bash否則會自動終止該centos容器

10.指定版本  docker pull centos:7  #可以通過:后指定版本,例如默認centos的版本為8,我們可以這樣指定為7的版本

11.容器文件持久化

容器有一個比較麻煩的地方,就是每次重啟之后會導致容器內的文件重置為初始化狀態。所以我們還需要對容器內的文件進行持久化配置

持久化配置有兩種方法

方法一:直接復制。如docker cp 容器id:/etc/prometheus /zhao   #將容器內部的文件復制到宿主機的/zhao文件夾下

方法二:docker run --name myprometheus -v /zhao/prometheus:/etc/prometheus -d 鏡像id  #其中-v是指映射邏輯卷的意思,將宿主機上的/zhao/prometheus里的文件和文件夾復制到容器的/etc/prometheus里。-d是指后台運行

 

 問題匯總:

1.問題描述:容器已啟動,但是docker ps沒有顯示

解決方法:docker ps -a查看全部docker應用

補充說明:如有運行異常的,使用stop是停止不了的,需要使用docker rm 加上containerID才行。這個rm我還不確定,建議謹慎操作

2.問題描述:提示httpd: Could not reliably determine the server's fully qualified domain name

解決方法:find / -name httpd.conf然后查找ServerName,把改參數值改為 localhost:80,然后重啟docker的httpd

補充說明;注意端口不要被占用了

3.問題描述:編輯文件時,發現沒有vim命令,也無法yum安裝,因為yum命令也沒有。

解決方法:(並不是通用的,只是部分容器可行):

進入容器內部,執行以下命令:

apt-get update
apt-get install vim

4.問題描述:容器開啟后,外部無法正常訪問服務,但是宿主機測試該服務是正常的

可能原因:Linux內核限制了網絡轉發導致  

解決方法:sysctl -w net.ipv4.ip_forward=1  #允許ipv4轉發

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM