docker學習3:Docker Hello World
Docker Hello World
Docker 允許你在容器內執行應用程式, 使用 docker run 命令來在容器內執行一個應用程式。
輸出Hello world
[root@huixuan ~]# docker run ubuntu:15.10 /bin/echo "Hello World"
Unable to find image 'ubuntu:15.10' locally
Trying to pull repository docker.io/library/ubuntu ...
15.10: Pulling from docker.io/library/ubuntu
7dcf5a444392: Pull complete
759aa75f3cee: Pull complete
3fa871dc8a2b: Pull complete
224c42ae46e7: Pull complete
Digest: sha256:02521a2d079595241c6793b2044f02eecf294034f31d6e235ac4b2b54ffc41f3
Status: Downloaded newer image for docker.io/ubuntu:15.10
Hello World
[root@huixuan ~]#
各個引數解析:
docker: Docker 的二進位制執行檔案。
run:與前面的 docker 組合來執行一個容器。
ubuntu:15.10指定要執行的映象,Docker首先從本地主機上查詢映象是否存在,如果不存在,Docker 就會從映象倉庫 Docker Hub 下載公共映象。
/bin/echo "Hello world": 在啟動的容器裡執行的命令
以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 映象建立一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。
執行互動式的容器
我們透過docker的兩個引數 -i -t,讓docker執行的容器實現"對話"的能力
[root@huixuan ~]# docker run -i -t ubuntu:15.10 /bin/bash
root@9eb6867b6b7a:/#
各個引數解析:
-t:在新容器內指定一個偽終端或終端。
-i:允許你對容器內的標準輸入 (STDIN) 進行互動。
此時我們已進入一個 ubuntu15.10系統的容器
我們嘗試在容器中執行命令 cat /proc/version和ls分別檢視當前系統的版本資訊和當前目錄下的檔案列表
root@9eb6867b6b7a:/# cat /proc/version
Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016
root@9eb6867b6b7a:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@9eb6867b6b7a:/#
我們可以透過執行exit命令或者使用CTRL+D來退出容器。
啟動容器(後臺模式)
使用以下命令建立一個以程式方式執行的容器
[root@huixuan ~]# docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
bf9a047d6e66312523cf21d36e737d706076d9e7549c9677010006f882045741
[root@huixuan ~]#
在輸出中,我們沒有看到期望的"hello world",而是一串長字元
bf9a047d6e66312523cf21d36e737d706076d9e7549c9677010006f882045741
這個長字串叫做容器ID,對每個容器來說都是唯一的,我們可以透過容器ID來檢視對應的容器發生了什麼。
首先,我們需要確認容器有在執行,可以透過 docker ps 來檢視
[root@huixuan ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bf9a047d6e66 ubuntu:15.10 "/bin/sh -c 'while..." 48 seconds ago Up 47 seconds elastic_einstein
[root@huixuan ~]#
CONTAINER ID:容器ID
NAMES:自動分配的容器名稱
在容器內使用docker logs命令,檢視容器內的標準輸出
[root@huixuan ~]# docker logs bf9a047d6e66
hello world
hello world
hello world
hello world
hello world
hello world
[root@huixuan ~]# docker logs elastic_einstein
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
停止容器
我們使用 docker stop 命令來停止容器:
[root@huixuan ~]# docker stop bf9a047d6e66
bf9a047d6e66
[root@huixuan ~]#
透過docker ps檢視,容器已經停止工作:
[root@huixuan ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@huixuan ~]#
也可以用下面的命令來停止:
[root@huixuan ~]# docker stop elastic_einstein
Docker 允許你在容器內執行應用程式, 使用 docker run 命令來在容器內執行一個應用程式。
輸出Hello world
[root@huixuan ~]# docker run ubuntu:15.10 /bin/echo "Hello World"
Unable to find image 'ubuntu:15.10' locally
Trying to pull repository docker.io/library/ubuntu ...
15.10: Pulling from docker.io/library/ubuntu
7dcf5a444392: Pull complete
759aa75f3cee: Pull complete
3fa871dc8a2b: Pull complete
224c42ae46e7: Pull complete
Digest: sha256:02521a2d079595241c6793b2044f02eecf294034f31d6e235ac4b2b54ffc41f3
Status: Downloaded newer image for docker.io/ubuntu:15.10
Hello World
[root@huixuan ~]#
各個引數解析:
docker: Docker 的二進位制執行檔案。
run:與前面的 docker 組合來執行一個容器。
ubuntu:15.10指定要執行的映象,Docker首先從本地主機上查詢映象是否存在,如果不存在,Docker 就會從映象倉庫 Docker Hub 下載公共映象。
/bin/echo "Hello world": 在啟動的容器裡執行的命令
以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 映象建立一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。
執行互動式的容器
我們透過docker的兩個引數 -i -t,讓docker執行的容器實現"對話"的能力
[root@huixuan ~]# docker run -i -t ubuntu:15.10 /bin/bash
root@9eb6867b6b7a:/#
各個引數解析:
-t:在新容器內指定一個偽終端或終端。
-i:允許你對容器內的標準輸入 (STDIN) 進行互動。
此時我們已進入一個 ubuntu15.10系統的容器
我們嘗試在容器中執行命令 cat /proc/version和ls分別檢視當前系統的版本資訊和當前目錄下的檔案列表
root@9eb6867b6b7a:/# cat /proc/version
Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016
root@9eb6867b6b7a:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@9eb6867b6b7a:/#
我們可以透過執行exit命令或者使用CTRL+D來退出容器。
啟動容器(後臺模式)
使用以下命令建立一個以程式方式執行的容器
[root@huixuan ~]# docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
bf9a047d6e66312523cf21d36e737d706076d9e7549c9677010006f882045741
[root@huixuan ~]#
在輸出中,我們沒有看到期望的"hello world",而是一串長字元
bf9a047d6e66312523cf21d36e737d706076d9e7549c9677010006f882045741
這個長字串叫做容器ID,對每個容器來說都是唯一的,我們可以透過容器ID來檢視對應的容器發生了什麼。
首先,我們需要確認容器有在執行,可以透過 docker ps 來檢視
[root@huixuan ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bf9a047d6e66 ubuntu:15.10 "/bin/sh -c 'while..." 48 seconds ago Up 47 seconds elastic_einstein
[root@huixuan ~]#
CONTAINER ID:容器ID
NAMES:自動分配的容器名稱
在容器內使用docker logs命令,檢視容器內的標準輸出
[root@huixuan ~]# docker logs bf9a047d6e66
hello world
hello world
hello world
hello world
hello world
hello world
[root@huixuan ~]# docker logs elastic_einstein
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
停止容器
我們使用 docker stop 命令來停止容器:
[root@huixuan ~]# docker stop bf9a047d6e66
bf9a047d6e66
[root@huixuan ~]#
透過docker ps檢視,容器已經停止工作:
[root@huixuan ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@huixuan ~]#
也可以用下面的命令來停止:
[root@huixuan ~]# docker stop elastic_einstein
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-2153583/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Docker Hello WorldDocker
- 在docker中寫個Hello WorldDocker
- [第七篇]——Docker Hello WorldDocker
- React 學習之 Hello WorldReact
- docker學習3:Docker容器使用Docker
- Hello DockerDocker
- Docker Hello World容器執行報錯的解決辦法Docker
- docker學習筆記(3)- 映象Docker筆記
- 【Docker 系列】docker 學習 三Docker
- [Docker 系列]docker 學習 三Docker
- [Docker 系列]docker 學習八,Docker 網路Docker
- Hello, World
- Hello,World
- Hello World
- Hello World!
- Hello World !
- docker 學習Docker
- docker學習Docker
- docker學習4:Docker 映象使用Docker
- Docker學習(十)Docker容器編排 Docker-composDocker
- docker學習6:Docker 安裝 NginxDockerNginx
- docker學習5:Docker 容器連線Docker
- docker學習1:CentOS Docker 安裝DockerCentOS
- docker學習7:Docker 安裝 PHPDockerPHP
- 【Docker】動手寫Dockerfile學習DockerDocker
- Docker 學習 一:Docker 是什麼Docker
- Docker 學習 一,Docker 是什麼Docker
- Docker學習(二)- Docker 安裝 JenkinsDockerJenkins
- Go - Hello WorldGo
- Deep "Hello world!"
- Hello Python worldPython
- Hello World探究
- dotnet hello world
- Go:Hello WorldGo
- ant Hello World
- Docker 容器學習Docker
- Docker學習2Docker
- Docker學習—SwarmDockerSwarm