近些年,若是你是一名開發,那麼Docker
這個熱門的技術名詞你必定據說過,我也不例外,可是由於平時沒接觸過,因此一直都沒動力去了解使用。最近在折騰本身維護在github上的項目的時候,發現項目所依賴的外部環境比較多,好比zookeeper、redis、elasticsearch等等,若是都安裝一遍的話比較麻煩,並且由於是本身整理平時積累用的項目,對數據也沒什麼要求,只要有這樣一個環境能保證項目運行起來就好了。第一時間想到的就是利用docker容器,這樣本身不但能夠順便學習一下這個熱門技術,還能夠把搭建成果做爲這個項目的一部分讓有興趣研究的項目關注者直接在接觸到這個項目的時候能夠快速把環境搭建起來,可謂是一箭雙鵰。git
有興趣的朋友能夠訪問項目地址:https://github.com/MartinDai/...github
參考 https://www.docker.com/get-st...,安裝並啓動後就可使用下面的這些命令了redis
docker --version
docker
查看當前docker版本,能夠順便驗證docker是否安裝成功且啓動好了bash
docker --help
網絡
查看docker命令幫助,包含全部支持的操做命令使用規則及簡介elasticsearch
還能夠看某個指令的詳細幫助,如:docker images --help
,docker全部命令均可以在最後加上--help
來查看該命令的使用幫助memcached
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
學習
下載鏡像,若是沒有指定鏡像地址,默認從官方的hub下載指定的鏡像,官方的hub提供了絕大多數熱門的組件鏡像,能夠根據本身的須要進行搜索,這個網站有點相似github的模式,各個官方組件通常都會有比較詳細的使用說明,好比Redis網站
可使用docker pull redis
下載最新版本的redis鏡像
也能夠指定下載的版本,如docker pull redis:5.0.5
就能夠下載5.0.5這個版本的鏡像
固然有一些組件沒有發佈在官方的hub上,好比elasticsearch和kibana,這兩個鏡像須要從docker.elastic.co這個地址下載,可使用docker pull docker.elastic.co/elasticsearch/elasticsearch:6.2.4
下載
docker images
查看當前已下載的鏡像列表
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
使用指定鏡像建立一個新的容器並運行,例如咱們想建立運行redis容器,則可使用命令docker run --name my-redis -d redis
,其中--name
是docker run
提供的參數,後面緊跟着的my-redis
是對應的值,表示啓動之後容器的名稱,若是不指定則會使用隨機生成的一個字符串。-d
表示後臺運行,若是不指定則啓動後會自動進入容器控制檯,而且退出控制檯的同時會關閉容器。
docker container ls [OPTIONS]
查看容器,能夠經過docker container ls
查看當前運行的容器,或者經過docker container ls -a
查看全部建立的容器
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
對指定的容器執行命令,咱們能夠經過執行docker exec -it my-redis /bin/bash
進入咱們剛剛啓動的容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
中止容器,若是要中止上面啓動的redis容器,則可使用命令docker stop my-redis
,指定了名字的好處立馬就能夠體現出來了,咱們能夠很精準的控制容器,而不須要去查詢容器名稱
有時候項目依賴的外部環境比較多,可是又不想一個一個啓動各個容器怎麼辦呢,docker-compose
就是用來解決這個問題的,該命令能夠經過使用指定的yml同時啓動多個容器。
假如咱們如今有個yml(具體yml規則可參考官方文檔),且文件名爲docker-compose.yml
version: '3.7' #標識docker-compose的版本,不一樣版本所支持的配置項有些不同 services: #服務(也就是各個容器)配置 redis: #服務名稱,用於配置文件內關聯使用 image: redis:5.0 #鏡像版本 container_name: redis #容器名稱 command: redis-server /etc/redis/redis.conf #啓動後執行的命令 restart: always #啓動失敗是否重啓 volumes: #路徑擴展映射配置 - ./redis/:/etc/redis/ #把當前目錄下的redis文件夾映射到容器中的/etc/redis文件夾,這樣就能夠在容器以外維護配置文件了 ports: #端口映射配置 - 6379:6379 #把本地的6379端口映射到容器的6379端口 networks: #網絡配置 - net-cache memcached: image: memcached:1.5 container_name: memcached restart: always ports: - 11211:11211 networks: - net-cache networks: net-cache: driver: bridge #配置橋接網絡
進入該文件所在的目錄,而後執行docker-compose up
就能夠啓動redis和memcached這兩個容器,若是要使用其餘文件名,則可使用-f
參數來指定文件名,如docker-compose -f docker-compose-cache.yml up
,若是須要後臺運行,則能夠在最後加上-d
。
有啓動就有中止,若是想要中止docker-compose up
啓動的容器,能夠執行docker-compose down
命令中止全部組合的容器。