Docker container常用的命令 今天操作docker命令,顯然不那么令人滿意,總結(jié)一下常用命令 安裝Docker:
鏡像管理 docker images:列出本地所有鏡像 docker search <IMAGE_ID/NAME>:查找image docker pull <IMAGE_ID>:下載image docker push <IMAGE_ID>:上傳image docker rmi <IMAGE_ID>:刪除image 容器管理 docker run -i -t <IMAGE_ID> /bin/bash:-i:標(biāo)準(zhǔn)輸入給容器 -t:分配一個虛擬終端 /bin/bash:執(zhí)行bash腳本 -d:以守護進(jìn)程方式運行(后臺) -P:默認(rèn)匹配docker容器的5000端口號到宿主機的49153 to 65535端口 -p <HOT_PORT>:<CONTAINER_PORT>:指定端口號 - -name: 指定容器的名稱 - -rm:退出時刪除容器 docker stop <CONTAINER_ID>:停止container docker start <CONTAINER_ID>:重新啟動container docker ps - Lists containers. -l:顯示最后啟動的容器 -a:同時顯示停止的容器,默認(rèn)只顯示啟動狀態(tài) docker attach <CONTAINER_ID> 連接到啟動的容器 docker logs <CONTAINER_ID> : 輸出容器日志 -f:實時輸出 docker cp <CONTAINER_ID>:path hostpath:復(fù)制容器內(nèi)的文件到宿主機目錄上 docker rm <CONTAINER_ID>:刪除container docker rm `docker ps -a -q`:刪除所有容器 docker kill `docker ps -q` docker rmi `docker images -q -a` docker wait <CONTAINER_ID>:阻塞對容器的其他調(diào)用方法,直到容器停止后退出 docker top <CONTAINER_ID>:查看容器中運行的進(jìn)程 docker diff <CONTAINER_ID>:查看容器中的變化 docker inspect <CONTAINER_ID>:查看容器詳細(xì)信息(輸出為Json) -f:查找特定信息,如docker inspect -f '{{ .NetworkSettings.IPAddress }}' docker commit -m "comment" -a "author" <CONTAINER_ID> ouruser/imagename:tag docker extc -it <CONTAINER> <COMMAND>:在容器里執(zhí)行命令,并輸出結(jié)果 網(wǎng)絡(luò)管理 docker run -P:隨機分配端口號 docker run -p 5000:5000:綁定特定端口號(主機的所有網(wǎng)絡(luò)接口的5000端口均綁定容器的5000端口) docker run -p 127.0.0.1:5000:5000:綁定主機的特定接口的端口號 docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py:綁定udp端口號 docker port <CONTAINER_ID> 5000:查看容器的5000端口對應(yīng)本地機器的IP和端口號 使用Docker Linking連接容器: Docker為源容器和接收容器創(chuàng)建一個安全的通道,容器之間不需要暴露端口,接收的容器可以訪問源容器的數(shù)據(jù) docker run -d -P --name <CONTAINER_NAME> --link <CONTAINER_NAME_TO_LINK>:<ALIAS> 數(shù)據(jù)管理 Data Volumes:volume是在一個或多個容器里指定的特殊目錄
可以在容器啟動的時候添加-v參數(shù)指定容器卷,也可以在Dockerfile里用VOLUMN命令添加 docker run -d -P --name web -v /webapp training/webapp python app.py 也可以將容器卷掛載到宿主機目錄或宿主機的文件上,<容器目錄或文件>的內(nèi)容會被替換為<宿主機目錄或文件>的內(nèi)容,默認(rèn)容器對這個目錄有可讀寫權(quán)限 docker run -d -P --name web -v <宿主機目錄>:<容器目錄> training/webapp python app.py 可以通過指定ro,將權(quán)限改為只讀 docker run -d -P --name web -v <宿主機目錄>:<容器目錄>:ro training/webapp python app.py 在一個容器創(chuàng)建容器卷后,其他容器便可以通過--volumes-from共享這個容器卷數(shù)據(jù),如下: docker run -d -v /dbdata --name db1 training/postgres echo Data-only container for postgres 首先啟動了一個容器,并為這個容器增加一個數(shù)據(jù)卷/dbdata,然后啟動另一個容器,共享這個數(shù)據(jù)卷 docker run -d --volumes-from db1 --name db2 training/postgres 此時db2使用了db1的容器卷,當(dāng)容器db1被刪除時,容器卷也不會被刪除,只有所有容器不再使用此容器卷時,才會被刪除 docker rm -v:刪除容器卷 除了共享數(shù)據(jù)外,容器卷另一個作用是用來備份、恢復(fù)和遷移數(shù)據(jù) docker run --volumes-from db1 -v /home/backup:/backup ubuntu tar cvf /backup/backup.tar /dbdata 啟動一個容器數(shù)據(jù)卷使用db1容器的數(shù)據(jù)卷,同時新建立一個數(shù)據(jù)卷指向宿主機目錄/home/backup,將/dbdata目錄的數(shù)據(jù)壓縮為/backup/backup.tar docker run -v /dbdata --name dbdata2 ubuntu /bin/bash docker run --volumes-from dbdata2 -v /home/backup:/backup busybox tar xvf /backup/backup.tar 啟動一個容器,同時把backup.tar的內(nèi)容解壓到容器的backup 倉庫管理 docker login:登錄 |
|
|