docker入門持續交付之路
阿新 • • 發佈:2019-01-06
安裝Docker | 服務相關
wget -qO- https://get.docker.com/ | sh
# 以非root使用者可以直接執行docker
sudo usermod -aG docker 主機使用者名稱
# 啟動docker
sudo service docker start
# 登陸本地機器上的docker公用映象庫
docker login
映象加速
# 在該配置檔案中加入(沒有該檔案的話,請先建一個)
# sudo vim /etc/docker/daemon.json
{
# "registry-mirrors": ["http://hub-mirror.c.163.com"]
# "registry-mirrors": ["https://registry.docker-cn.com"]
}
容器相關
# 啟動容器
docker start Names
# 正在執行的容器需要重啟
dicker restart 容器id / Names
# -t:在新容器內指定一個偽終端或終端
# -i:允許你對容器內的標準輸入 (STDIN) 進行互動
# -d:讓容器在後臺執行。
# -P:將容器內部使用的網路埠對映到我們使用的主機上。
docker run 引數 (--name 命名) 容器 命令
# 平穩關閉容器
docker stop 容器id / Nacmes
# 強制關閉指定的容器
docker kill 容器id / Nacmes
# 刪除容器(必須是停止狀態)
docker rm Names
# 刪除所有容器
docker rm $(docker ps -a -q)
# 停止所有容器
docker stop $(docker ps -a -q)
檢視正在執行的Dokcer
docker ps
埠
# docker ps
# 0.0.0.0:32769->5000/tcp
# Docker 開放了 5000 埠(預設 Python Flask 埠)對映到主機埠 32769 上
# ip:32769可以訪問
# 繫結指定埠或者網路地址
# -P :是容器內部埠隨機對映到主機的高階口。
# -p : 是容器內部埠繫結到指定的主機埠。
# 預設都是繫結 tcp 埠,如果要繫結 UDP 埠,可以在埠後面加上 /udp
docker run -d -p 5000:5000 映象 *.py
docker run -d -p 網路地址:埠:5000 映象 *.py
# 檢視指定容器的某個確定埠對映到宿主機的埠號
docker port 容器id / Names
檢視容器標準輸出
# -f 輸出容器內部的標準輸出
docker logs -f 容器id
檢視程序
docker top Names
檢視Dokcer所有命令選項
docker
# 查詢指定命令深層引數
docker stats --help
檢視Dokcer底層資訊
docker inspect Names
映象相關
# 列出存在映象
docker images
# 獲取一個新映象
docker pull docker pull 映象:版本
# 查詢映象
docker search 映象名字
# 建立映象
# 1.從已經建立的容器中更新映象,並且提交這個映象
# 2.使用 Dockerfile 指令來建立一個新的映象
# 更新映象
# 先建立一個容器
docker run -t -i 映象 命令
# 在執行的容器內使用apt-get update命令進行更新
# exit()退出當前環境
docker commit -m="提交資訊" -a="指定作者" 容器id 新映象名字
# 構建映象
# 在自己的系統裡建立一個Dockerfile檔案,包含以下命令
FROM 映象源
MAINTAINER Fisher "[email protected]"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
# -t :指定要建立的目標映象名
# . :Dockerfile 檔案所在目錄,可以指定Dockerfile 的絕對路徑
# 終端輸入
docker build -t 映象 .
# 在拉一個映象
# 設定映象TAG
docker tag 容器id 映象:標籤
# 刪除映象
docker rmi 容器id
# 刪除全部映象
docker rmi $(docker images -q)
# 刪除映象標籤
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
# 匯出映象
sudo docker save -o ./壓縮檔案.tar Names
# 匯入映象
# 恢復許可權 rw- --- ---
sudo docker load < 壓縮檔案.tar
# 推送映象
# 1.準備一個映象
# 2.給映象打tag
# 3.docker push 使用者名稱/倉庫:②裡面的tag
# 從遠端倉庫拉一個映象
docker run -p 4000:80 使用者名稱/倉庫:tag