Docker常用命令總結
【常用命令總結】
系統----------------------------------------
systemctl restart docker && docker start $(docker ps -a -q) //重啟時直接開啟說有容器
【映象】---------------------------------------------------------------------
docker images //檢視本地的映象
docker rmi centos:latest //用來刪除指定映象
映象--啟動部分--------------------------------------------------------------
docker run -itd 映象名 //把映象啟動為容器 其實他也等於下面的這兩條命令
docker create -itd centos6 bash 然後 docker start container_id //等同於上一條命令
對於上面兩條命令,如果不加-d 你進入了容器後,退出容器,容器就停止了
docker run --name web -itd centos bash // --name 啟動時給容器自定義名字
docker run --rm -it centos bash -c "sleep 30" //--rm 可以讓容器退出後直接刪除,在這裡命令執行完容器就會退出(不常用)
docker run -itd -p 5123:80 映象 bash //埠對映,左為宿主機:右為容器
docker run -itd --privileged -e "container=docker" centos_with_nginx /usr/sbin/init //解決無許可權啟動服務的辦法,紅色部分
映象--匯入匯出部分-----------------------------------------------------------
cat centos-6-x86-minimal.tar.gz|docker import - centos6 //其他地方下載的映象匯入進docker(和export對應)
docker export container_id > file.tar //匯出檔案,可以遷移到其他伺服器
docker save -o aming-centos.tar aming //現有映象儲存成檔案(本機備份)
docker load --input aming-centos.tar 或者 docker load < aming-centos.tar //兩種方式將save下來的檔案匯入(本機恢復)
【容器】------------------------------------------------------------------------------------------------
docker ps //檢視執行的容器,加上-a選項後可以檢視所有容器,包括未執行的
docker stop 容器id 或者 docker rm 容器id //這兩種方式停止容器
docker exec -it 容器id或自定義名稱 bash//進入容器 如果建立這個容器時用 --name定義了名字,這可以用定義名字進入
docker commit -m "一些改動資訊" -a "作者相關資訊可以不加" 容器id(container_id) 最後新映象的名字 //將容器儲存成映象
docker logs container_id //查詢容器執行歷史資訊
【倉庫】-----------------------------------------------------------------------------------------------
docker pull centos//從官方倉庫下載映象(最好搭配加速器,請看 Docker管理的【docker映象管理】部分)
搭建私有倉庫請看Docker管理的【Docker搭建私有倉庫管理】
【資料管理】----------------------------------------------------------------------------------------
docker run -tid -v /data/:/data 映象 bash //建立容器時定義掛載的本地目錄對應容器內的目錄(左宿主機:右容器)
docker run -itd --volumes-from 容器name 映象 bash //我的理解:通過上一條命令產生的容器,也弄一個跟他一樣掛載本地目錄的容器
docker run -itd -v /data/ --name 自定義名字 映象 bash //我的理解:建立一個容器,這個容器的/data/目錄是用來存放資料的,後續如果建立其他容器時--volumes-from 加這個容器的名字,那麼資料實際就是在這臺容器上,而不是其他容器上。