歡迎光臨
每天分享高質量文章

Docker 基本命令

(點選上方公眾號,可快速關註)


來源:Listen ,

listenzhangbin.com/post/2016/08/docker-docker-basic-command/

Docker是一個近年來非常火熱的開源專案,使用Docker作為容器並將我們的應用程式執行在Docker中方便部署及測試,也利於開發環境的隔離。最近簡單地學習了一下Docker的基本使用,在此做一個學習筆記。

安裝

使用的第一步當然就是安裝了,可以到Docker的官網上,根據不同作業系統下載安裝即可。

安裝完成之後可以在命令列中執行

docker –version

如果安裝正確,那麼會輸出相應的版本資訊

Docker version 1.12.0, build 8eab29e

Docker映象(image)命令

安裝完成之後,就可以下載映象了。類似於Github,Docker也有一個DockerHub,當我們pull映象的時候是從DockerHub上下載相應的映象。除了可以在https://registry.hub.docker.com/檢索映象以外,還可以使用以下命令檢索:

Docker映象搜尋

docker search 映象名

比如搜尋Redis映象:

docker search redis

可以得到以下結果:

NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED

redis                     Redis is an open source key-value store th…   2626      [OK]       

sameersbn/redis                                                           33                   [OK]

torusware/speedus-redis   Always updated official Redis docker image…   30                   [OK]

bitnami/redis             Bitnami Redis Docker Image                      23                   [OK]

anapsix/redis             11MB Redis server image over AlpineLinux        6                    [OK]

webhippie/redis           Docker images for redis                         5                    [OK]

williamyeh/redis          Redis image for Docker                          3                    [OK]

clue/redis-benchmark      A minimal docker image to ease running the…   3                    [OK]

unblibraries/redis        Leverages phusion/baseimage to deploy a ba…   2                    [OK]

miko2u/redis              Redis                                           1                    [OK]

greytip/redis             redis 3.0.3                                     1                    [OK]

servivum/redis            Redis Docker Image                              1                    [OK]

kampka/redis              A Redis image build from source on top of …   1                    [OK]

appelgriebsch/redis       Configurable redis container based on Alpi…   0                    [OK]

yfix/redis                Yfix docker redis                               0                    [OK]

cloudposse/redis          Standalone redis service                        0                    [OK]

watsco/redis              Watsco redis base                               0                    [OK]

nanobox/redis             Redis service for nanobox.io                    0                    [OK]

xataz/redis               Light redis image                               0                    [OK]

trelllis/redis            Redis Replication                               0                    [OK]

khipu/redis               customized redis                                0                    [OK]

maestrano/redis           Redis is an open source key-value store th…   0                    [OK]

rounds/10m-redis          redis for hubot brain                           0                    [OK]

higebu/redis-commander    Redis Commander Docker image. https://gith…   0                    [OK]

drupaldocker/redis        Redis for Drupal                                0                    [OK]

可以看到第一個就是官方的映象。

映象下載

檢索到映象之後就是下載映象,還是以Redis為例:

docker pull redis

映象串列

下載完成之後可以檢視本地映象

docker images

 

#output:

 

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

redis               latest              50e38ce0458f        3 days ago          185 MB

REPOSITORY是映象名;TAG是軟體版本,latest為最新版;IMAGE ID是當前映象的唯一標示;CREATED是當前映象建立時間;SIZE是當前映象的大小。

映象刪除

如果需要刪除一個映象,可以使用以下命令

docker rmi image-id

刪除所有映象

docker rmi ${docker images -q}

Docker容器命令

容器基本操作

最簡單的執行映象為容器

docker run —-name container-name -d image-name

–name引數是為容器取的名字,-d表示detached,在後臺執行容器,image-name是要使用哪個映象來執行容器。

執行一個Redis容器

docker run –name test-redis -d redis

容器串列

檢視執行中的容器串列

docker ps

可以看到我們之前執行的Redis容器

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES

b45e490b7f99        redis               “docker-entrypoint.sh”   15 minutes ago      Up 4 seconds        6379/tcp            test-redis

CONTAINER ID是在啟動的時候Docker生成的ID;IMAGE是該容器使用的映象;COMMAND是容器啟動時呼叫的命令;CREATED是容器的建立時間;STATUS是當前容器的狀態;PORTS是容器系統所使用的埠號(註意,這裡的埠號不是本機的埠號),Redis預設使用6379埠;NAMES是給容器定義的名稱。

檢視執行和停止狀態的容器

docker ps -a

停止和啟動容器

停止容器

docker stop container-name/container-id

透過容器名稱或者容器id來停止容器,例如停止之前的Redis容器:

docker stop test-redis

啟動容器

docker start container-name/container-id

再次啟動之前的容器

docker start test-redis

埠對映

Docker中執行的程式的埠是不能直接訪問的,需要對映到本地,透過-p引數實現,例如將6379埠對映到本機的6378埠

docker run -d -p 6378:6379 —-name port-redis redis

執行一個名字為port-redis的容器,使用redis映象,將Docker中的redis的6379埠對映到本機的6378埠。

對映完成之後我們就可以連線Redis進行開發等等,非常方便。

刪除容器

刪除單個容器

docker rm container-id

刪除所有容器

docker rm ${docker ps -a -q}

容器日誌

檢視當前容器的日誌

docker logs container-name/container-id

我們可以檢視之前redis映象的容器

docker logs test-redis

可以看到redis啟動的日誌

登入容器

執行中的容器其實就是一個完備的Linux作業系統,我們可以登入訪問當前容器,登入後可以在容器中進行常規的Linux操作。

docker exec -it container-id/container-name bash

使用exit命令退出當前登入。

看完本文有收穫?請轉發分享給更多人

關註「ImportNew」,看技術乾貨

贊(0)

分享創造快樂