Docker學習筆記

學習背景

近些年,若是你是一名開發,那麼Docker這個熱門的技術名詞你必定據說過,我也不例外,可是由於平時沒接觸過,因此一直都沒動力去了解使用。最近在折騰本身維護在github上的項目的時候,發現項目所依賴的外部環境比較多,好比zookeeper、redis、elasticsearch等等,若是都安裝一遍的話比較麻煩,並且由於是本身整理平時積累用的項目,對數據也沒什麼要求,只要有這樣一個環境能保證項目運行起來就好了。第一時間想到的就是利用docker容器,這樣本身不但能夠順便學習一下這個熱門技術,還能夠把搭建成果做爲這個項目的一部分讓有興趣研究的項目關注者直接在接觸到這個項目的時候能夠快速把環境搭建起來,可謂是一箭雙鵰。git

有興趣的朋友能夠訪問項目地址:https://github.com/MartinDai/...github


安裝 Docker Desktop

參考 https://www.docker.com/get-st...,安裝並啓動後就可使用下面的這些命令了redis

docker 命令

docker --versiondocker

查看當前docker版本,能夠順便驗證docker是否安裝成功且啓動好了bash

clipboard.png

docker --help網絡

查看docker命令幫助,包含全部支持的操做命令使用規則及簡介elasticsearch

clipboard.png

還能夠看某個指令的詳細幫助,如:docker images --help,docker全部命令均可以在最後加上--help來查看該命令的使用幫助memcached

clipboard.png

docker pull [OPTIONS] NAME[:TAG|@DIGEST]學習

下載鏡像,若是沒有指定鏡像地址,默認從官方的hub下載指定的鏡像,官方的hub提供了絕大多數熱門的組件鏡像,能夠根據本身的須要進行搜索,這個網站有點相似github的模式,各個官方組件通常都會有比較詳細的使用說明,好比Redis網站

clipboard.png

可使用docker pull redis下載最新版本的redis鏡像

clipboard.png

也能夠指定下載的版本,如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

查看當前已下載的鏡像列表

clipboard.png

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

使用指定鏡像建立一個新的容器並運行,例如咱們想建立運行redis容器,則可使用命令docker run --name my-redis -d redis,其中--namedocker 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 命令

有時候項目依賴的外部環境比較多,可是又不想一個一個啓動各個容器怎麼辦呢,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命令中止全部組合的容器。

相關文章
相關標籤/搜索