docker常用命令整理

一、docker常用命令

docker容器生命周期管理

docker run? 在一個新的容器執(zhí)行一個命令

docker start 開一個或者更多已經(jīng)停止的容器

docker stop 停止一個運行的容器

docker restart 重新開始一個運行的容器

docker kill 殺死一個運行的容器

docker rm 刪除一個或更多的容器

docker pause 暫停一個容器的所有進程

docker unpaunse 恢復一個容器的所有進程

docker容器操作運維

docker ps 列出容器

docker inspect 列出關于容器或鏡像的底層信息

docker top 顯示一個容器運行的進程

docker attach 附上一個運行的容器

docker events 得到實時的來自服務的事件

docker log 獲得一個容器的日志

docker wait 阻塞直到一個容器停止,然后打印它的退出代碼

docker export 導出一個容器的文件系統(tǒng)作為一個tar文件

docker port 列出容器映射的端口

docker版本管理

docker commit 創(chuàng)建一個新的鏡像從一個容器

docker cp 從容器復制一個文件或目錄到本地目錄或標準輸出

docker diff 展示一個容器文件系統(tǒng)的變化

docker鏡像倉庫

docker login 登入倉庫

docker pull 拉取鏡像

docker push 推送鏡像

docker search 搜索鏡像

docker本地鏡像管理

docker images 列出本地的鏡像

docker rmi 刪除本地的鏡像

docker tag 打標簽本地的鏡像

docker build 通過Dockerfile構建本地的鏡像

docker histroy 列出鏡像的歷史

docker save 保存本地的鏡像為一個tar文件

docker import 通過tar導入鏡像

docker load 加載tar鏡像

docker其它命令

docker info

docker version

二、docker私有倉庫操作

1.? 配置docker daemon的參數(shù),由于每個發(fā)行版的linux的init系統(tǒng)不用,所以使用通用的命令行方式重啟docker daemon

docker daemon --insecure-registry 192.168.6.65:5000 &

2. 認證私有倉庫

docker login -u -p -e 192.168.6.65:5000

3. 拉取鏡像

docker pull 192.168.6.65:5000/centos:latest

4. tag本地鏡像

docker tag 192.168.6.65:5000/centos:1.0.0 192.168.6.65:5000/centos:latest

5. 推送鏡像

docker push 192.168.6.65:5000/centos:1.0.0

6.docker, mac 的鏡像目錄

/Users/{YourUserName}/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2? 保存到文件當中

三、docker run 命令詳解

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-d,--detach=false指定容器運行于前臺還是后臺,默認為false

-i,--interactive=false打開STDIN,用于控制臺交互

-t,--tty=false分配tty設備,該可以支持終端登錄,默認為false

-u,--user=""指定容器的用戶

-a,--attach=[]????????????登錄容器(必須是以docker?run?-d啟動的容器)

-w,--workdir=""指定容器的工作目錄

-c,--cpu-shares=0設置容器CPU權重,在CPU共享場景使用

-e,--env=[]???????????????指定環(huán)境變量,容器中可以使用該環(huán)境變量

-m,--memory=""指定容器的內(nèi)存上限

-P,--publish-all=false指定容器暴露的端口

-p,--publish=[]???????????指定容器暴露的端口

-h,--hostname=""指定容器的主機名

-v,--volume=[]????????????給容器掛載存儲卷,掛載到容器的某個目錄

--volumes-from=[]??????????給容器掛載其他容器上的卷,掛載到容器的某個目錄

--cap-add=[]???????????????添加權限,權限清單詳見:http://linux.die.net/man/7/capabilities

--cap-drop=[]??????????????刪除權限,權限清單詳見:http://linux.die.net/man/7/capabilities

--cidfile=""運行容器后,在指定文件中寫入容器PID值,一種典型的監(jiān)控系統(tǒng)用法

--cpuset=""設置容器可以使用哪些CPU,此參數(shù)可以用來容器獨占CPU

--device=[]????????????????添加主機設備給容器,相當于設備直通

--dns=[]???????????????????指定容器的dns服務器

--dns-search=[]????????????指定容器的dns搜索域名,寫入到容器的/etc/resolv.conf文件

--entrypoint=""覆蓋image的入口點

--env-file=[]??????????????指定環(huán)境變量文件,文件格式為每行一個環(huán)境變量

--expose=[]????????????????指定容器暴露的端口,即修改鏡像的暴露端口

--link=[]??????????????????指定容器間的關聯(lián),使用其他容器的IP、env等信息

--lxc-conf=[]??????????????指定容器的配置文件,只有在指定--exec-driver=lxc時使用

--name=""指定容器名字,后續(xù)可以通過名字進行容器管理,links特性需要使用名字

--net="bridge"容器網(wǎng)絡設置:

bridge?使用docker?daemon指定的網(wǎng)橋

host????//容器使用主機的網(wǎng)絡

container:NAME_or_ID>//使用其他容器的網(wǎng)路,共享IP和PORT等網(wǎng)絡資源

none?容器使用自己的網(wǎng)絡(類似--net=bridge),但是不進行配置

--privileged=false指定容器是否為特權容器,特權

容器擁有所有的capabilities

--restart="no"指定容器停止后的重啟策略:

no:容器退出時不重啟

on-failure:容器故障退出(返回值非零)時重啟

always:容器退出時總是重啟

--rm=false指定容器停止后自動刪除容器(不支持以docker?run?-d啟動的容器)

--sig-proxy=true設置由代理接受并處理信號,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理

example:

1.docker?run?-d--name=server-db?-p?3306:3306?centos6.8-mysql?/usr/bin/mysql_safe?–d

主機3306端口映射到容器3306端口

2.docker?run?-it?--rm??centos6.8??容器結束后自動刪除

3.docker?run?-d--name=server-db?-p?3306:3306?-v?/server/mysql-data:/mysql-data?centos6.8-mysql?/usr/bin/mysql_safe?–d

將主機的/server/mysql-data 目錄映射到容器 /mysql-data 中

四、docker 技巧

1..清理無用的docker容器命令

docker ps -aqf ?status=exited | xargs docker rm

2.清理無用鏡像的命令

docker images -qf dangling=true | xargs docker rmi

3.清理無用的docker掛載

docker volume rm $(docker volume ls -q -f dangling=true)

dockerignore使用

類似.gitignore一樣,運行Dockerfile里的COPY指令的時候會根據(jù).dockerignore進行部分目錄或者文件忽略。

docker的架構如下圖 :?

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 一、Docker 簡介 Docker 兩個主要部件:Docker: 開源的容器虛擬化平臺Docker Hub: 用...
    R_X閱讀 4,510評論 0 27
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 0x01 核心概念 Docker鏡像類似于虛擬機鏡像,可以理解為一個面向Docker引擎的只讀模板,包含了文件系統(tǒng)...
    閑云逸心閱讀 4,955評論 0 9
  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,828評論 15 147
  • 一個整體家具店只用了一招,銷售額一年就翻了10倍,而且家具店再不需要一個業(yè)務員,你想知道是如何做到的嗎? 有兩夫妻...
    夢里櫻花_eff3閱讀 863評論 0 1

友情鏈接更多精彩內(nèi)容