柚子快報激活碼778899分享:Docker學習筆記
柚子快報激活碼778899分享:Docker學習筆記
學習背景
近些年,如果你是一名開發(fā),那么Docker這個熱門的技術(shù)名詞你一定聽說過,我也不例外,但是因為平時沒接觸過,所以一直都沒動力去了解使用。最近在折騰自己維護在github上的項目的時候,發(fā)現(xiàn)項目所依賴的外部環(huán)境比較多,比如zookeeper、redis、elasticsearch等等,如果都安裝一遍的話比較麻煩,而且因為是自己整理平時積累用的項目,對數(shù)據(jù)也沒什么要求,只要有這樣一個環(huán)境能保證項目運行起來就行了。第一時間想到的就是利用docker容器,這樣自己不但可以順便學習一下這個熱門技術(shù),還可以把搭建成果作為這個項目的一部分讓有興趣研究的項目關(guān)注者直接在接觸到這個項目的時候可以快速把環(huán)境搭建起來,可謂是一舉兩得。
有興趣的朋友可以訪問項目地址:https://github.com/MartinDai/SpringBoot-Project
安裝 Docker Desktop
參考 https://www.docker.com/get-started,安裝并啟動后就可以使用下面的這些命令了
docker 命令
查看docker版本
docker --version
查看當前docker版本,可以順便驗證docker是否安裝成功且啟動好了
查看幫助
docker --help
查看docker命令幫助,包含所有支持的操作命令使用規(guī)則及簡介
還可以看某個指令的詳細幫助,如:docker images --help,docker所有命令都可以在最后加上--help來查看該命令的使用幫助
拉取鏡像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
下載鏡像,如果沒有指定鏡像地址,默認從官方的hub下載指定的鏡像,官方的hub提供了絕大多數(shù)熱門的組件鏡像,可以根據(jù)自己的需要進行搜索,這個網(wǎng)站有點類似github的模式,各個官方組件一般都會有比較詳細的使用說明,比如Redis
可以使用docker pull redis下載最新版本的redis鏡像
也可以指定下載的版本,如docker pull redis:5.0.5就可以下載5.0.5這個版本的鏡像
當然有一些組件沒有發(fā)布在官方的hub上,比如elasticsearch和kibana,這兩個鏡像需要從docker.elastic.co這個地址下載,可以使用docker pull docker.elastic.co/elasticsearch/elasticsearch:6.2.4下載
國內(nèi)訪問docker官方鏡像有時候會超時,可以配置deamon.json使用國內(nèi)的鏡像
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/","https://hub-mirror.c.163.com","https://registry.docker-cn.com"], "insecure-registries": ["10.0.0.12:5000"] }
查看鏡像
docker images
查看當前已下載的鏡像列表
刪除鏡像
docker rmi [OPTIONS] IMAGE [IMAGE...]
舉例:docker rmi my-image:1.0,表示刪除名為my-image,版本號為1.0的鏡像
使用鏡像創(chuàng)建容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
使用指定鏡像創(chuàng)建一個新的容器并運行,例如我們想創(chuàng)建運行redis容器,則可以使用命令docker run --name my-redis -p 6379:6379 -d redis,其中--name是docker run提供的參數(shù),后面緊跟著的my-redis是對應(yīng)的值,表示啟動以后容器的名稱,如果不指定則會使用隨機生成的一個字符串。-p 6379:6379表示把本機端口6379映射到容器的6379端口,-d表示后臺運行,如果不指定則啟動后會自動進入容器控制臺,并且退出控制臺的同時會關(guān)閉容器。
容器查看
docker container ls [OPTIONS]
查看容器,可以通過docker container ls查看當前運行的容器,或者通過docker container ls -a查看所有創(chuàng)建的容器
刪除容器
docker container rm [OPTIONS] CONTAINER [CONTAINER...]
舉例:docker container rm my-container1 my-container2 表示同時刪除name為my-container1和my-container2的兩個容器
啟動容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
舉例:docker start my-container1表示啟動name為my-container1的容器
容器執(zhí)行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
對指定的容器執(zhí)行命令,我們可以通過執(zhí)行docker exec -it my-redis /bin/bash進入我們剛剛啟動的容器
復(fù)制文件到容器
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
舉例:docker cp /Users/martin/Downloads/test.txt e4cf118af140:/var/lib/dev/
其中: /Users/martin/Downloads/test.txt為本地文件路徑 e4cf118af140為容器ID /var/lib/dev/為容器目錄
復(fù)制容器文件到本地
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
舉例:docker cp e4cf118af140:/var/lib/dev/test.txt /Users/martin/Downloads/
其中: /Users/martin/Downloads/為本地路徑 e4cf118af140為容器ID /var/lib/dev/test.txt為容器文件路徑
停止容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
停止容器,如果要停止上面啟動的redis容器,則可以使用命令docker stop my-redis,指定了名字的好處立馬就可以體現(xiàn)出來了,我們可以很精準的控制容器,而不需要去查詢?nèi)萜髅Q
修改容器作為新鏡像
docker commit [-m] [-a] CONTAINERID REPOSITORY[:TAG]
-m 類似代碼提交時的comment信息 -a 指定修改者信息 CONTAINERID 用來創(chuàng)建鏡像的容器ID REPOSITORY[:TAG] 目標鏡像的倉庫名和tag信息
創(chuàng)建成功后會新鏡像的ID
舉例:docker commit -m "add something" -a "Martin Dai" e4cf118af140 my-image:latest
推送鏡像到遠程
docker push REPOSITORY[:TAG]
舉例:docker push my-image:latest
基于容器導出鏡像
docker export [OPTIONS] CONTAINER
舉例:docker export -o my-image.tar my-container,表示name為my-container的容器導出到my-image.tar文件
導入鏡像
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
舉例:docker import my-image.tar my-image:latest,表示將my-image.tar導入為鏡像,名為my-image,版本號為latest
docker-compose 命令
有時候項目依賴的外部環(huán)境比較多,但是又不想一個一個啟動各個容器怎么辦呢,docker-compose就是用來解決這個問題的,該命令可以通過使用指定的yml同時啟動多個容器。
假如我們現(xiàn)在有個yml(具體yml規(guī)則可參考官方文檔),且文件名為docker-compose.yml
version: '3.7' #標識docker-compose的版本,不同版本所支持的配置項有些不一樣
services: #服務(wù)(也就是各個容器)配置
redis: #服務(wù)名稱,用于配置文件內(nèi)關(guān)聯(lián)使用
image: redis:5.0 #鏡像版本
container_name: redis #容器名稱
command: redis-server /etc/redis/redis.conf #啟動后執(zhí)行的命令
restart: always #啟動失敗是否重啟
volumes: #路徑擴展映射配置
- ./redis/:/etc/redis/ #把當前目錄下的redis文件夾映射到容器中的/etc/redis文件夾,這樣就可以在容器之外維護配置文件了
ports: #端口映射配置
- 6379:6379 #把本地的6379端口映射到容器的6379端口
networks: #網(wǎng)絡(luò)配置
- net-cache
memcached:
image: memcached:1.5
container_name: memcached
restart: always
ports:
- 11211:11211
networks:
- net-cache
networks:
net-cache:
driver: bridge #配置橋接網(wǎng)絡(luò)
進入該文件所在的目錄,然后執(zhí)行docker-compose up就可以啟動redis和memcached這兩個容器,如果要使用其他文件名,則可以使用-f參數(shù)來指定文件名,如docker-compose -f docker-compose-cache.yml up,如果需要后臺運行,則可以在最后加上-d。
有啟動就有停止,如果想要停止docker-compose up啟動的容器,可以執(zhí)行docker-compose down命令停止所有組合的容器。
柚子快報激活碼778899分享:Docker學習筆記
好文鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。