docke學習之:安裝docker並下載映象啟動容器
背景:
在工作開發時,因為某些專案需要分散式的框架或者一些叢集,由於開發與op溝通成本和時間問題,常常無法快速得到一個開發可用的測試環境,那麼就需要程式設計師在自己的測試機上安裝一些叢集和工具,但是由於測試機只有一臺,叢集例如zookeeper叢集無法安裝,所以選擇使用docker來解決本地測試機搭建可用的開發環境。
安裝內容:
zookeeper叢集(三臺)
mysql
redis
mongo
安裝docker:
一:首先確認linux下的yum是否為最新
使用 sudo 或 root 許可權的使用者登入終端。
3.確保yum是最新的
命令:$ yum update
二:安裝docker
如果不是root許可權下執行以下命令:
sudo yum install docker
如果是root許可權下執行以下命令:
yum install docker
提示是否下載:y
Total download size: 27 M
Installed size: 87 M
Is this ok [y/d/N]: y
安裝成功提示 :Complete!
三:下載容器並啟動
2、sudo chmod +x /usr/local/bin/docker-compose
3、啟動docker
不是root許可權下執行:sudo systemctl start docker
root許可權下執行:systemctl start docker
四:下載docker映象專案檔案zip:
此處下載了同事提供的私有gitlab映象專案檔案,此處不做貼上。
在local目錄下建立資料夾
命令:mkdir docker-service
將映象zip上傳到資料夾
命令:rz 選擇檔案
解壓zip檔案:
先檢查是否有解壓功能
命令:whereis unzip
返回以下則表示可以使用unzip解壓檔案
unzip: /usr/bin/unzip /usr/share/man/man1/unzip.1.gz
加壓zip檔案命令(在zip所在資料夾下):unzip 檔名
可以修改以下解壓之後的檔名(可以不進行此操作)
命令:mv 舊資料夾名 新資料夾名
執行映象檔案:
命令:/usr/local/bin/docker-compose up -d
成功:
Creating marketing_mysql ... done
Creating marketing-zookeeper1 ... done
Creating marketing-zookeeper3 ... done
Creating marketing_mongo ... done
Creating marketing_redis ... done
Creating marketing-zookeeper2 ... done
Creating marketing_phpmyadmin ... done
2.1 Build once,run anywhere
這個官網對docker的宣傳,雖然在實際使用docker在構建的過程中會遇到各種因為網路環境,系統環境或者其他各種不可抗力因素導致映象構建失敗。但是當映象構建成功之後真的就是構建一次,到處執行。
配合docker-compose來用,你可以在任何地方3秒(不考慮映象下載時間)啟動一整套LNMP環境或者Hadoop+Hbase+Spark+Kafka等任何你提前構建好叢集環境,而且這些環境是絕對一致的。
另外,當你要學習一個東西的時候,比如Jenkins,你可以直接拉去Jenkins映象,1秒啟動,完全不用考慮搭建一個Jenkins環境帶來的各種成本。
實際上在寫Dockerfile和docker-compose.yml檔案的過程中可能要比在虛擬裡裡面搭建環境的成本還要高,但是在這裡是一勞永逸的,而且是可以共享的。
2.2 使用docker帶來哪些收穫
docker可以快速試錯和嘗試,當我想了解Jenkins的功能的時候我只需要把映象下載下來,快速啟動,按照自己的想法大膽嘗試,一旦配置錯誤無法恢復的時候只要重新啟動一個新的映象就ok了
docker保證環境的絕對一致性可以大大減少環境搭建和環境版本以及依賴不一致的問題。
3. How
怎麼使用docker
3.1 安裝
以centos為例,centos7已包含docker包,可以只用使用yum安裝
#yum install docker
如果提示找不到包可以按照官網教程新增docker源,ce是社群版 ee為企業版
#yum install yum-utils
#yum install docker-ce
3.2 啟動
啟動docker
#systemctl start docker
開機自啟動docker
#systemctl enable docker
3.3 常用命令
3.3.1 pull
使用docker pull 可以在映象倉庫中拉取映象,如果不加tag,預設拉取的是latest的映象
#docker pull hello-world
3.3.2 run
使用docker run 可以使映象作為容器執行起來,可以加 -id 引數使映象在後臺執行,不輸出內容到控制檯。
容器在啟動之後容器裡必須有一個程序是以前臺模式執行的,要不容器會以為所有的事情都做完了,就會自動停止。
#docker run hello-world
3.3.3 ps
使用docker ps 可以檢視正在執行的容器,使用 -a 引數可以檢視所有的容器
#dokcer ps -a
3.3.4 exec
使用docker exec 可以進入到容器內容,使用 -it 引數會分配一個新的終端,後面必須指定sh型別。
# docker exec -it [容器id] bash
3.3.5 other
docker 命令可以使用 docker help檢視全部,子命令可以使用docker COMMAND --help檢視詳情。
下面列舉出一些其他常用命令:
start 啟動容器
stop 停止容器
inspect 檢視容器詳情
logs -f 檢視容器輸出日誌
rm 刪除映象
rmi 刪除映象