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

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)

分享創造快樂