鏡像:Docker 鏡像是用於創建 Docker 容器的模板
容器:容器是獨立運行的一個或一組應用
倉庫:用來保存鏡像,可以理解為代碼控制中的代碼倉庫
一個倉庫中包含多個鏡像,以鏡像為模板可創建出多個容器,每個容器是獨立運行的一個或者一組應用。 容器是鏡像的實例,鏡像是容器的模板 。
簡略:
容器生命周期:run、start/stop/restart、kill、rm、pause/unpause、create、exec
容器操作:ps、inspect、top、attach、events、logs、wait、export、port
容器rootfs:commit、cp、diff
鏡像倉庫:login/logout、pull、push、search
本地鏡像管理:images、rmi、tag、build、history、save、import
info|version:info、version 【docker info/vaersion分別查看系統信息和版本信息】
一:容器
增:
docker create [OPTIONS] IMAGE [COMMAND] [ARG...] #創建一個新的容器但不啟動它
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] #創建一個新的容器並運行一個命令
進:
docker exec -ti <container name/id> #不會像attach方式因為退出,導致整個容器退出。
docker attach <container name/id> #進入虛擬機,如果從這個stdin中exit,會導致容器的停止。
開啟/停止/重啟
docker container start/stop/restart <hash>
刪:
docker container rm <hash> # 從此機器中移除指定的容器【刪除容器時,容器必須是停止狀態,否則會報如下錯誤】 docker container rm $(docker container ls -a -q) # 刪除所有容器
docker container kill <hash> # 強制關閉指定的容器
查:
docker container ls # 列出所有運行的容器 docker container ls -a # 列出所有的容器
docker ps # 查看我們正在運行的容器
docker ps -l # 查詢最后一次創建的容器
docker logs <container id> # 查看容器內的標准輸出 docker logs <container name> # 查看容器內的標准輸出
docker port <container name/id> <port> # 查看容器端口的映射情況
docker inspect <container id/name> #查看Docker的底層信息,它會返回一個 JSON 文件記錄着 Docker 容器的配置和狀態信息
二:鏡像
增:
docker build -t friendlyname . # 使用此目錄的“Dockerfile”創建鏡像 docker push 192.168.1.52:5000/zabbix #提交鏡像到本地私有
docker pull ubuntu:13.10 # 下載ubuntu:13.10鏡像
刪:
docker image rm <image id> # 從機器中移除指定鏡像
docker image rm $(docker image ls -a -q) # 從機器上移除所有鏡像
查:
docker image ls -a # 列出機器上所有鏡像
docker search httpd # 通過 docker search 命令搜索 httpd 來尋找適合我們的鏡像
運:
docker run httpd # 使用鏡像倉庫
#鏡像標簽
docker tag <image> username/repository:tag # 標簽<image>上傳到倉庫【repository為鏡像源名】
docker push username/repository:tag # 上傳標記的圖像到注冊表
docker run username/repository:tag # 從注冊表運行映像
三:其他
docker login # 使用您的Docker憑據登錄此CLI會話
docker run -d -p 127.0.0.1:4000:80/udp friendlyname # 后台運行"friendlyname" 鏡像並將4000 端口映射到80端口
# -P:將容器內部使用的網絡端口映射到我們使用的主機上
# -d:讓容器在后台運行
# 默認都是綁定 tcp 端口,如果要綁定 UDP 端口,可以在端口后面加上 /udp
docker run ubuntu:15.10 /bin/echo "Hello world" #Docker 以 ubuntu15.10 鏡像創建一個新容器,然后在容器里執行 bin/echo "Hello world",然后輸出結果。
docker run -d -P --name runoob training/webapp python app.py #對容器鏡像重新命名