天天看點

學習了解使用docker

docker是什麼;docker安裝使用;連接配接進入docker容器;docker拉取複制和上傳

學習了解使用docker

docker是項目開發部署相關工具容器,本文通過官網等資料閱讀學習,簡單介紹一些基本使用操作:

  1. docker是什麼
  2. 2.docker安裝使用
  3. 連接配接進入docker容器
  4. docker拉取複制和上傳

docker是什麼

為什麼會出現docker,常使用項目部署開發的人自然能了解,因為docker讓服務部署更簡單。

下面說一下docker是什麼,有什麼用,等同與說明為什麼會出現docker這種技術。

docker主要是讓服務部署更高效。官網稱之為容器 container,在項目開發中開發環境/測試環境/生産環境通過docker容器技術統一,減少環境誤差導緻産生的錯誤,大大提高開發效率。

鏡像技術,隔離環境

我認為docker是一種鏡像服務技術,他将原來linux上運作的服務全部放在docker内運作,linux和docker之間有一定的實體隔離和軟體版本隔離效果,并且可以複制多個程式而避免重新安裝,很好的提高伺服器項目部署相關的工作效率,且有增加伺服器安全系數。

(甚至介紹通過docker,可以讓linux上的程式也能在windows照常運作,目前還沒試過)

高效部署服務

當你有一個服務開發部署好了,伺服器是linux,裡面安裝了mysql,nginx,java-application,redis,jdk8;現在伺服器要擴充,同樣的服務部署到多台伺服器,要怎麼做才高效? 重新安裝mysql,nginx,jdk8 ,然後各種配置端口密碼各種參數,再重新啟動每個程式? 當你作為一個部署負責人的時候會覺得重複繁瑣,并且配置細節很多,不小心會出差錯,這時候鏡像技術docker就能使服務部署快速,并避免少犯錯,這時候docker可真是個好東西。

将原來的運作服務放在docker内運作,需要部署到其他伺服器時,打包整個docker生成docker鏡像,然後複制docker到新的linux伺服器啟動就好了,mysql,nginx,redis,等等很多東西不需要重新配置部署,隻需要啟動鏡像docker和一些個性化的腳本。

安裝docker

# 首先安裝需要用到的工具
yum install -y yum-utils #安裝工具 環境

#指定存儲庫
yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo
           

查詢可安裝版本

yum list docker-ce --showduplicates | sort -r # 檢視可用安裝版本
 ## 找出stable版本的,表示穩定版,本次選的是
 ## docker-ce.x86_64         3:18.09.0-3.el7                        docker-ce-stable ##
 ## 安裝
 yum install docker-ce-18.09.0 docker-ce-cli-18.09.0  containerd.io
 ## 規則 3:18.09.0-3.el7 為版本資訊,那麼安裝就是 ce-後面加上18.09.0 
 ## 取3:18.09.0-3.el7的':'和'-'之間的字元"18.09.0"
           

運作測試

docker run hello-world
           

使用示例

拉取docker容器

關于docker使用推薦文章

拉取一個 redis 容器 并運作

# 拉取 redis容器
docker pull redis
# 檢視目前容器有哪些
docker images
# 運作容器  -p 指定端口
docker run -p 3123:6379 --name some-redis -d redis redis-server --appendonly yes
# 通過docker 啟動redis服務  
# 通路伺服器3123端口時,映射到docker的6379端口 
# docker服務名 some-redis 
# --appendonly yes redis持久化,容器關閉後再啟動,redis内的資料不失效

           

連接配接進入docker 容器

docker運作後,我們可以進入容器,上面是redis服務容器,可以了解為一個centos伺服器裡面啟動了redis服務,我們可以連接配接進去,并且裡面是一個虛拟的linux環境

# 檢視在運作的docker容器服務
docker -ps
# exec 表示連接配接進入容器 32jd3h21正在運作的容器的id
docker exec -it 32jd3h21 /bin/bash  
           

相關文章

docker複制上傳

當我們定義好一個容器的環境,我們可以将容器鏡像上傳的倉庫,用于同一開發的環境,當其他人員也參與目前項目開發是,拉去同一個docker鏡像容器,避免了項目代碼運作環境差異。

上傳docker鏡像文章

docker hub 是專門用于docker鏡像服務的倉庫,我們需要先注冊帳号,注冊好後,建立倉庫(和github類似)

讓後我們在伺服器裡面先登入dockerhub賬号,然後将需要上傳的鏡像push到倉庫

# 檢視鏡像 
docker images
a4sdfa2 為某個docker容器的id

# 複制建立一個要送出到遠端的鏡像容器
docker commit -a "author" -m "description" a4sdfa2  web1

# 設定倉庫  web1 本地容器名   username dockerhub使用者名  rep-url 使用者的倉庫名  v2 标簽名
docker tag web1 username/rep-url:v2

# 拉去上傳的docker
docker pull username/rep-url:web1

# 最後通過pull指令拉取鏡像 
           

docker 容器中放項目代碼嗎?

一般項目開發,代碼修改較頻繁,容器主要是用于同一運作環境,不應含有具體開發項目代碼。

給團隊使用的docker容器應該是定義代碼運作環境,而不是代碼本身。每個開發人員拉取了docker容器後,負責業務子產品不同,很可能要編寫的代碼也不一樣,容器放入代碼反而多餘;代碼同步這快應該是通過git,svn等代碼倉庫工具完成更合适。