(點選上方公眾號,可快速關註)
來源: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」,看技術乾貨