您好,登錄后才能下訂單哦!
今天小編給大家分享一下Docker快速入門及環境配置的方法的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
主要優勢為:
更快速的交付和部署 - 容器成為了最小單位
更高效的虛擬化 - 內核級虛擬化
更輕松的遷移和拓展
更簡單的管理
基本概念
主要是三個:
鏡像(image)
一個只讀的模板,鏡像可以用來創建 docker 容器
可以簡單創建或更新現有鏡像,或者直接下載使用其他人的
容器(container)
容器是從鏡像創建的運行實例,在啟動的時候創建一層可寫層作為最上層(因為鏡像是只讀的)
可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺
可以把容器看做是一個簡易版的 linux 環境(包括root用戶權限、進程空間、用戶空間和網絡空間等)和運行在其中的應用程序
倉庫(repository)
集中存放鏡像文件的場所
最大的公開倉庫是 docker hub
國內的公開倉庫包括 docker pool 等
當用戶創建了自己的鏡像之后就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺機器上使用這個鏡像時候,只需要從倉庫上 pull 下來就可以了
docker 倉庫的概念跟 git 類似,注冊服務器可以理解為 github 這樣的托管服務
安裝
官方網站提供了 mac, linux 和 windows 版本的安裝教程。因為我打算使用虛擬機進行安裝測試,所以這里主要走 linux 的安裝教程,不過其他的應該大同小異。我的 ubuntu 版本是 14.04 lts, trusty
docker 目前只能安裝在 64 位平臺上,并且要求內核版本不低于 3.10,實際上內核越新越好,過低的內核版本容易造成功能的不穩定。可以通過下面的命令來檢查內核版本(兩個方式,都可以):
parallels@ubuntu:~$ uname -a linux ubuntu 3.13.0-83-generic #127-ubuntu smp fri mar 11 00:25:37 utc 2016 x86_64 x86_64 x86_64 gnu/linux
parallels@ubuntu:~$ cat /proc/version linux version 3.13.0-83-generic (buildd@lgw01-55) (gcc version 4.8.2 (ubuntu 4.8.2-19ubuntu1) ) #127-ubuntu smp fri mar 11 00:25:37 utc 2016
這里我們按照官網的教程,不使用 apt-get
而是使用 curl
來進行安裝。
1、如果沒有安裝 curl,使用 sudo apt-get update; sudo apt-get install cur
l 來進行安裝
2、下載最新的 docker 包 curl -fssl | sh
如果想要以 non-root
用戶的角色來使用,請使用 sudo usermod -ag docker parallels
(這里 parallels 是用戶名),注意需要注銷并重新登錄以應用改動
3、驗證安裝
需要先啟用 docker sudo service docker start
然后可以用 docker version
來查看版本
最后使用 docker run hello-world
來測試
版本信息
parallels@ubuntu:~$ docker version client: version: 1.10.3 api version: 1.22 go version: go1.5.3 git commit: 20f81dd built: thu mar 10 15:54:52 2016 os/arch: linux/amd64 server: version: 1.10.3 api version: 1.22 go version: go1.5.3 git commit: 20f81dd built: thu mar 10 15:54:52 2016 os/arch: linux/amd64
成功運行 hello world 的結果
parallels@ubuntu:~$ docker run hello-world hello from docker. this message shows that your installation appears to be working correctly. to generate this message, docker took the following steps: 1. the docker client contacted the docker daemon. 2. the docker daemon pulled the "hello-world" image from the docker hub. 3. the docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. the docker daemon streamed that output to the docker client, which sent it to your terminal. to try something more ambitious, you can run an ubuntu container with: $ docker run -it ubuntu bash share images, automate workflows, and more with a free docker hub account: https://hub.docker.com for more examples and ideas, visit: https://docs.docker.com/userguide/
這之后的部分是課程需求。
我們需要安裝 docker machine
和 virtual box
,具體步驟為:
# 獲取權限 $ sudo su # 下載 docker machine 的二進制文件 $ curl -l https://github.com/docker/machine/releases/download/v0.6.0/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine # 驗證安裝 $ docker-machine version docker-machine version 0.6.0, build e27fb87
添加源
把這行添加到 /etc/apt/sources.list
文件中 deb trusty contrib
wget -q -o- | sudo apt-key add -
更新并安裝 sudo apt-get update; sudo apt-get install virtualbox-5.0
配置
然后是一些配置,先重設默認的虛擬機
刪除原來的默認(如果有的話)docker-machine rm default
創建新的默認虛擬機 docker-machine create --driver virtualbox default
(這一步可能需要等一下,我用的是 parallel desktop 11,還需要在虛擬機設置中開啟 cpu 虛擬化,主要是支持 vt-x)
然后如果直接在菜單中選擇 virtual box 的話,就會發現什么都沒有,技巧是要在剛才的命令行中輸入 virtualbox,然后就可以看到下面的界面:
在 settings - network 中選擇 port forwarding,然后按照如圖所示添加記錄
這里的 host port: 9234 記為 a,guest port: 9001 記為 b。然后就可以啟動 docker 中老師提供的鏡像了:
命令為 docker run -it -p 9001:9000 cmusvsc/apachecmda:1.1
(需要下載一段時間,然后再解壓一段時間),這里 9001 記為 c,9000 記為 d。
接著就會直接連接到 docker 中的虛擬機,從之后的圖中可以看到命令行前面的內容也變化了。然后我們輸入命令開啟前端
cd /home/spring2016/apachecmda-frontend ./activator run # 相當于在 9000 端口開啟
不要關現在的終端,開啟一個新的終端。用
docker exec -it `docker ps -q` /bin/bash
進入正在執行的 docker
等待一段時間后,繼續走以下命令
# 開啟 mysql 服務器 service mysql start cd /home/spring2016/apachecmda-backend ./activator "run 9034" 然后等待一段時間(第一運行需要編譯),就可以見到主頁面了:
也可以嘗試直接 localhost:9001
還記得前面的端口轉發嗎?這里解釋一下:
a,也就是 9234,是用戶訪問的端口號
b,也就是 9001,我們通過虛擬機的端口轉發從 9234 轉到了 9001
c,也就是 9001(這個命令中的 docker run -it -p 9001:9000 cmusvsc/apachecmda:1.1),是虛擬機繼續轉發的端口
d,也就是 9000(這個命令中的 docker run -it -p 9001:9000 cmusvsc/apachecmda:1.1),是 docker 容器中接收請求的端口。
也就是說,b 和 c 一定要一樣,a 和 d 可以在命令中設置。至于為什么后端需要運行在 9034 端口,是因為前端和后端通過這個端口通訊(應該是寫死在代碼里的)
掛載主機數據卷到容器內,可以通過如下命令進行文件夾映射
docker run -it -p 9999:9999 -p 9001:9000 -v ~/localfolder:/sharedfolder cmusvsc/apachecmda:1.1
從容器內拷貝文件到主機上
# 列出 container docker ps # 復制 這個不知道為啥不行 docker cp <containerid>:/file/path/within/container /host/path/target # 掛載映射 docker run -it -v /home/parallels/documents/code:/home/code cmusvsc/apachecmda:1.1 # 復制 cp -r spring2016/* ./code/
以上就是“Docker快速入門及環境配置的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。