十分鐘入門Docker,帶你成爲Docker王者之篇一

不囉嗦,不廢話,寫代碼,一把梭,幹就完了。linux

爲啥寫這幾篇文章,主要是解決如下兩個問題,不知道你們是否遇到過沒有?git

  1. 小夥伴在平常開發或者看書學習中,確定據說過Docker 這個詞。臥槽,這是啥?是幹啥的?爲啥你們都說它牛逼?
  2. 在實際的開發中,有沒有遇到這種困擾:你本地搭建的環境好好的,可是換一臺機器從新搭環境,就可能出現各類千奇百怪的問題;或者讓你的小夥伴運行你的程序,他那邊又會出來各類你都沒見過的詭異bug。

那麼,基於以上兩點,皮爺給你們用四五篇短文章來講一下Docker怎麼玩,爭取用最簡單,最簡短,最通俗易懂的姿式來讓你快速上手,徹底能夠應付工做和了解後入本身應該如何深刻學習。github

在文章開頭先給你們列出來咱們的目標:docker

  • 會安裝Docker,而且能跑起來Docker。【青銅等級
  • 學會找鏡像(Image),學會運行和管理鏡像(Image)和容器(Container)。【白銀等級
  • 學會建立本身的鏡像,而且分享給他人使用。【黃金以上
  • 學會使用docker-compose來一次性啓動多個鏡像。【鉑金鑽石

就先給你們搞到鉑金水平吧。由於倒了鉑金水平,就徹底能夠本身放手玩王者了,呃,不對,是Docker。因此,咱們趕忙開始教學吧。ubuntu

Docker 是啥?

網上的那些官話我也不想多說,什麼容器啊鏡像啊之類的。皮爺在這裏給初學者舉兩個簡單形象的例子,你就會馬上明白Docker是啥了。windows

  1. Docker就像是你電腦裏面安裝了一個冰箱,這個冰櫃提供製做形狀各異的雪糕模具(這個就是鏡像Image),而後你能夠用這些模具來製做各類各樣的雪糕(雪糕也就是container)。作出來的雪糕,支持訪問,能夠查看雪糕內部的各類結構。
  2. 經過Docker,你能夠將本身的雪糕模具給了其餘的小夥伴或者上傳到網上,而後其餘的小夥伴能夠用你的模具,在他的電腦裏面的冰櫃(Docker)中,就能夠製做出來和你的如出一轍的雪糕。

理解起來簡單不?這樣的解釋騷不?這裏徹底是爲了給初學者刻畫一下Docker的輪廓是啥,不作具體深刻的原理講解。若是有想要深刻了解原理的同窗,建議去官方文檔學習:centos

https://www.docker.com/resources/what-container

【青銅】安裝Docker和Docker-compose

Docker能夠在不一樣的系統裏安裝:windows,Linux和Mac OS。這裏就簡單的和你們說一下安裝步驟。api

Ububtu 安裝 Docker

參考地址:
bash

https://docs.docker.com/v17.12/install/linux/docker-ce/ubuntu/

安裝Docker: 網絡

# step 0: 首先檢查系統中是否已經安裝了Docker:$ docker --version# step 1: 若是沒有安裝,依次輸入一下命令:$ sudo apt update$ sudo apt install docker.io# step 2: 以後就能夠再次檢查Docker版本:$ docker --versionDocker version 18.09.7, build 2d0084d複製代碼

出現上面最後一行字就表明安裝Docker成功了。

接下來,安裝Docker-compose。

參考地址:

https://docs.docker.com/compose/install/

# step 0: 檢查系統中是否已經安裝了Docker-compose$ docker-compose --version# step 1: 執行如下命令安裝docker-compose$ sudo apt install docker-compose# step 2: 安裝成功以後,檢查一下Docker-compose版本$ docker-compose --versiondocker-compose version 1.8.0, build unknown複製代碼

出現上面一行字,就表明Docker-compose安裝成功了。

CentOS 安裝 Docker

參考地址:

https://docs.docker.com/v17.12/install/linux/docker-ce/centos/

安裝Docker:

# step 0: 安裝必要的一些系統工具$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2# Step 1: 添加軟件源信息$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# Step 2: 更新並安裝Docker-CE$ sudo yum makecache fast$ sudo yum -y install docker-ce# Step 3: 開啓Docker服務$ sudo service docker start複製代碼

安裝Docker-compose能夠參考:https://docs.docker.com/compose/install/

# step 1$ sudo curl -L https://github.com/docker/compose/releases/download/[版本號]/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose# step 2$ sudo chmod +x /usr/local/bin/docker-compose# step 3: 安裝完成後,查看版本$ docker-compose version複製代碼

Windows 和 Mac 安裝Docker:

因爲Windows和Mac均採用安裝包的形式安裝,屬於傻瓜安裝,這裏就很少說了。只不過這兩個系統都有最低要求,必定要看好,

最低要求

  • Windows最低是Windows 10
  • Mac 最低是 macOS El Capitan 10.11

具體的安裝能夠參考:
Mac:

https://docs.docker.com/v17.12/docker-for-mac/install/

Windows:
https://docs.docker.com/v17.12/docker-for-windows/install/

檢查版本:

$ docker versionClient: Docker Engine - Community Version:           18.09.2 API version:       1.39 Go version:        go1.10.8 Git commit:        6247962 Built:             Sun Feb 10 04:12:39 2019 OS/Arch:           darwin/amd64 Experimental:      falseCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?複製代碼

咋運行Docker?

首先不肯定Docker是否啓動,能夠經過docker ps命令來看一下docker是否已經啓動:

$ docker ps# 未啓動長這個樣子Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?# 啓動就會列出來運行的實例(由於這裏沒有跑實例,因此是空的)CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES複製代碼

若是發現Docker沒有啓動,則須要先啓動Docker:

CentOs:$ sudo systemctl start dockerWindows和Mac OS則須要啓動 Docker Desktop複製代碼

啓動以後,咱們直接運行 docker run hello-world 看看:

能夠看到Docker完美啓動,這個時候 docker ps -a 能夠看到已經中止的容器:

好的,目前 Docker 的只是這一篇就先說這麼多,在接下來的文章裏,皮爺會給你們講 Docker 的更過經常使用命令和使用方法。

做業小練手

若是你已經成功安裝好了 Docker,不妨試一試皮爺的 Docker Image 跑起來的效果:

$ docker run swyftg/3dmspider複製代碼

若是遇到報錯:

Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)複製代碼

這個問題多是由於你的電腦開了威屁嗯,梳理一下你的網絡,而後再重啓一下 Docker 就能夠了。

你們能夠試一下,看看跑起來會出現什麼結果?
下一篇文章,皮爺主要給你們講一下在 Docker 中怎麼找 Image,怎麼運行和管理 Container 和 Image。

喜歡的能夠關注公號『皮爺擼碼』,回覆『代碼』,其中 DC001 就是 Docker 系列的代碼,你們能夠學習一下。

相關文章
相關標籤/搜索