1. 程式人生 > 其它 >成長之路:Docker(三)使用

成長之路:Docker(三)使用

技術標籤:求知:成長dockerlinux

Hello World

Docker允許在容器內執行應用程式。
docker run:在容器內執行一個應用程式。

[[email protected] ~]# docker run ubuntu:15.10 /bin/echo "Hello world"

在這裡插入圖片描述
引數解析:

  • docker:Docker的二進位制執行檔案。
  • run:與docker組合來執行一個容器。
  • ubuntu:15.10:指定要執行的映象,Docker首先從本地主機上查詢映象是否存在,如果不存在,Docker就會從映象倉庫Docker Hub下載公共映象。
  • /bin/echo “Hello world”:在啟動的容器裡執行的命令。

以上命令的意思為:Docker以ubuntu:15.10映象建立一個新容器,在容器裡執行/bin/echo “Hello world”。

互動式容器

通過docker的引數-i,-t,讓docker的容器實現對話:

[[email protected] ~]# docker run -i -t ubuntu:15.10 /bin/bash
[email protected]:/#

引數解析:

  • -t:在新容器內指定一個偽終端或終端。
  • -i:允許你對容器內的標準輸入進行互動。

[email protected]:/#,此時我們進入了一個ubuntu15.10系統的容器。

在容器中執行命令cat /proc/version

ls分別檢視當前系統的版本資訊和當前目錄下的檔案列表。

[[email protected] ~]# docker run -i -t ubuntu:15.10 /bin/bash
[email protected]:/# cat /proc/version
Linux version 3.10.0-862.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Fri Apr 20 16:44:24 UTC 2018
[email protected]:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

在這裡插入圖片描述
可以通過執行exit命令或者使用CTRL+D來退出容器。

[email protected]:/# exit
exit
[[email protected] ~]#

啟動容器(後臺模式)

使用以下命令建立一個以程序方式執行的容器

[[email protected] ~]# docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
b72f4ae245a90a9af586c52fea0213fb72a6cabe5bd197da8460117073bf87d0

b72f4ae245a90a9af586c52fea0213fb72a6cabe5bd197da8460117073bf87d0這個長字串叫做容器ID,對每個容器來說都是唯一的,我們可以通過容器ID來檢視對應的容器發生了什麼。

首先,我們需要確認容器有在執行,可以通過docker ps來檢視:

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
b72f4ae245a9        ubuntu:15.10        "/bin/sh -c 'while t…"   3 minutes ago       Up 3 minutes                            dreamy_babbage

詳情介紹:
CONTAINER ID: 容器ID。
IMAGE: 使用的映象。
COMMAND: 啟動容器時執行的命令。
CREATER: 容器的建立時間。
STATUS: 容器狀態。

狀體有7種:

  • created:已建立
  • restarting:重啟中
  • running或up:執行中
  • removing:遷移中
  • paused:暫停
  • exited:停止
  • dead:死亡

PORTS: 容器的埠資訊和使用的連線型別(tcp\udp)。
NAMES: 自動分配的容器名稱。

在宿主主機內使用docker logs命令,檢視容器內的標準輸出:

[[email protected] ~]# docker logs b72f4ae245a9
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
[[email protected] ~]# docker logs dreamy_babbage
hello world
hello world
hello world
hello world
hello world
hello world
hello world

停止容器

docker stop:停止容器。

[[email protected] ~]# docker stop b72f4ae245a9
b72f4ae245a9
[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

通過docker ps檢視,容器已停止。