docker的使用

docker利用容器來運行應用:docker容器是由docker鏡像創建的運行實例。docker容器類似虛擬機,可以執行包含啓動,停止,刪除等。每個容器間是相互隔離的。容器中會運行特定的運用,包含特定應用的代碼及所需的依賴文件。可以把容器看作一個簡易版的linux環境(包含root用戶權限,進程空間,用戶空間和網絡空間等)和運行在其中的應用程序。

容器:運行程序

鏡像:安裝程序

倉庫:存儲鏡像

 

1. 在centos上使用docker

yum install -y docker service docker start /stop/restart
sudo docker run ubuntu:15.10 /bin/echo "helloworld"
  • docker: Docker 的二進制執行文件。
  • run:與前面的 docker 組合來運行一個容器。
  • ubuntu:15.10指定要運行的鏡像,Docker首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。
  • /bin/echo "Hello world": 在啓動的容器裏執行的命令

以上命令完整的意思可以解釋爲:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裏執行 bin/echo "Hello world",然後輸出結果。

 

docker run -i -t ubuntu:15.10 /bin/bash
  • -t:在新容器內指定一個僞終端或終端。
  • -i:允許你對容器內的標準輸入 (STDIN) 進行交互。

進入 一個ubuntu15.10的容器 exit/ctrl+d: 退出

 

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" 2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

 

長字符串是容器ID

docker ps

查看容器是否運行

CONTAINER ID:容器ID

NAMES:自動分配的容器名稱

在容器內使用docker logs命令,查看容器內的標準輸出

docker logs 13972412dbdf 或 docker logs 對應的名字

停止:

docker stop 13972412dbdf 或 docker stop 對應的名字

docker search java docker pull java //搜索對應的鏡像,然後下載

 

 

2. 運行web應用

# docker run -d -P training/webapp python app.py

#docker ps 

輸出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
 e5aabc457784 training/webapp "python app.py" 12 seconds ago Up 11 seconds 0.0.0.0:32768->5000/tcp agitated_brown 13972412dbdf ubuntu:15.10 "/bin/sh -c 'while t…" 16 minutes ago Up 16 minutes ........

 

Docker 開放了 5000 端口(默認 Python Flask 端口)映射到主機端口 32768 上。

這時我們可以通過瀏覽器訪問WEB應用(使用本地主機IP)

我們也可以通過 -p 參數來設置不一樣的端口:

docker run -d -p 5000:5000 training/webapp python app.py

查看端口映射情況:

docker port 1b4d598106c1 或 docker port 對應名字

其他常用命令:

docker top id/name:查看容器內運行的進程信息 
docker inspect id/name:  來查看 Docker 的底層信息。它返回一個 JSON 文件記錄着 Docker 容器的配置和狀態信息。 
docker start/stop/rm id/name:運行、停止、刪除鏡像
 docker images:查看本地鏡像 REPOSITORY:表示鏡像的倉庫源 TAG:鏡像的標籤 IMAGE ID:鏡像ID CREATED:鏡像創建時間 SIZE:鏡像大小
 docker pull ubuntu:13.10 獲取新鏡像 
docker tag 860c279d2fec runoob/centos:dev //打標籤

 

3. 提交容器副本

ID爲e218edb10161的容器,是按我們的需求更改的容器。我們可以通過命令 docker commit來提交容器副本。

docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8

各個參數說明:

  • -m:提交的描述信息
  • -a:指定鏡像作者
  • e218edb10161:容器ID
  • runoob/ubuntu:v2:指定要創建的目標鏡像名
docker images

 docker run -t -i fish/ubuntu:v2 /bin/bash

4 構造dockerfile,構建鏡像:

FROM centos:6.7 
MAINTAINER Fisher "[email protected]" 
RUN /bin/echo 'root:123456' |chpasswd
 && useradd runoob \ 
 && /bin/echo 'runoob:123456' |chpasswd \
 && /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local \ 
EXPOSE 22 
EXPOSE 80 
CMD /usr/sbin/sshd -D

 

構建鏡像:

docker build -t runoob/centos:6.7 /home/fish/

構建成功後,查看 docker images 再運行 生成容器

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章