久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

使用 Docker 快速搭建開發(fā)環(huán)境

 quasiceo 2018-03-23

在代碼開發(fā)中, 除了語言開發(fā)環(huán)境及 IDE 外, 我們往往還需要依賴其他第三方服務(wù), 如:數(shù)據(jù)庫,服務(wù)器,緩存,搜索,MQ 等等. 而這些服務(wù)的安裝各式各樣, 有的極為復(fù)雜, 有的對(duì)開發(fā)機(jī)有極大的限制, 甚至有的直接不支持當(dāng)前開發(fā)機(jī). 給我們的開發(fā)環(huán)境搭建帶來了極大的困難. 這時(shí)我們可以選擇使用 Docker 來快速搭建開發(fā)環(huán)境, 屏蔽復(fù)雜的安裝過程, 服務(wù)配置.

什么是 Docker



作者:jnil
鏈接:https://www.jianshu.com/p/c1b79afc6d63
來源:簡(jiǎn)書
著作權(quán)歸作者所有,。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處,。

我們參考 Docker 官網(wǎng)中的概述 what-docker

Docker 是世界領(lǐng)先的軟件容器平臺(tái),。** 開發(fā)人員使用 Docker 來消除與同事的代碼協(xié)作時(shí)的 “我機(jī)器上的工作” 問題 **。運(yùn)營商使用 Docker 在獨(dú)立的容器中并行運(yùn)行和管理應(yīng)用程序,,以獲得更好的計(jì)算密度,。企業(yè)使用 Docker 構(gòu)建靈活的軟件傳送管道,可以更快,,更安全地運(yùn)行新功能,,并且對(duì)于 Linux 和 Windows Server 應(yīng)用程序都有信心。
-- 來自谷歌翻譯

在其中的 Docker For Developers 部分中, 我們可以查看對(duì)于我們開發(fā)者具體有哪些作用

Docker 自動(dòng)執(zhí)行設(shè)置和配置開發(fā)環(huán)境的重復(fù)任務(wù),,以便開發(fā)人員可以專注于重要的事情:構(gòu)建出優(yōu)秀的軟件,。

使用 Docker 的開發(fā)人員不必安裝和配置復(fù)雜數(shù)據(jù)庫,也不用擔(dān)心在不兼容的語言工具鏈版本之間切換,。當(dāng)應(yīng)用程序 Docker 化時(shí),,這種復(fù)雜性被推入容易構(gòu)建,共享和運(yùn)行的容器中,。將同事加入新的代碼庫不再意味著安裝軟件和解釋安裝程序的時(shí)間,。Dockerfiles 隨附的代碼更簡(jiǎn)單:依賴關(guān)系被拉為整齊的 Docker 映像,任何具有 Docker 和編輯器的人都可以在幾分鐘內(nèi)構(gòu)建和調(diào)試應(yīng)用程序,。
-- 來自谷歌翻譯

** 簡(jiǎn)單來說, 使用 Docker 我們可以專注于代碼的編寫, 忽略其他軟件復(fù)雜的安裝, 配置. 同時(shí)可以統(tǒng)一線上, 線下環(huán)境, 不受服務(wù)版本差異的影響 **

安裝 Docker

請(qǐng)參考 Docker 官方文檔中的 Install Docker
目前 Docker 支持的系統(tǒng)版本如下

Docker 支持的系統(tǒng)版本. png

Docker 最初是在 Ubuntu 12.04 上開發(fā)實(shí)現(xiàn)的 [1], 另外 Docker 官網(wǎng)文檔中的一些操作命令也是基于 Ubuntu 來講解的, 如果有條件, 推薦使用 Ubuntu
Linux 安裝完成后, 請(qǐng)查看 Post-installation steps for Linux 完成一些后續(xù)配置
對(duì)于 Linux 用戶需要特別注意, 如果是以非 root 用戶運(yùn)行, 需要?jiǎng)?chuàng)建 docker 組, 并將當(dāng)前用戶添加到 docker 組中 [2]

$ sudo groupadd docker
$ sudo usermod -aG docker $USER

Docker 中使用的鏡像都需要從網(wǎng)站上下載, 因?yàn)榫W(wǎng)絡(luò)原因, 國內(nèi)下載速度往往不佳, 此時(shí)可以使用國內(nèi)的一些加速器來加速下載, 如:DaoCloud,阿里云, 具體用法, 請(qǐng)登錄后查看網(wǎng)站說明文檔

使用 Docker 搭建開發(fā)環(huán)境

現(xiàn)在以搭建 mysql 為例
首先從 hub.docker.com 網(wǎng)站中搜索你需要的鏡像, 如 mysql

hub 搜索鏡像. png

其中第一個(gè)帶有 official 單詞的表明為 Dcoker 官方提供的鏡像, 下面的三個(gè)為個(gè)人 / 組織上傳的鏡像
我們點(diǎn)擊右側(cè) DETAILS 按鈕查看鏡像詳情
hub 鏡像說明. png

圖中的 8.0.15.5.55 四行表示支持的 mysql 版本, 同時(shí)附帶鏡像構(gòu)建的 Dockerfile 文件
右側(cè)的 docker pull mysql 是鏡像的下載命令, 此時(shí)我們可以在命令行中執(zhí)行該命令進(jìn)行下載, 默認(rèn)下載版本為 latest
如果希望指定下載版本, 使用如下命令格式 docker pull mysql:版本號(hào), 如 docker pull mysql:5.6

下載 mysql 鏡像

$ docker pull mysql:5.7

運(yùn)行 mysql 鏡像

$ docker run --name mysql --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

此時(shí)會(huì)在命令行中輸出該容器運(yùn)行時(shí)的日志, 若要退出, 請(qǐng)按 Ctrl+c
如果希望在后臺(tái)運(yùn)行, 加入 -d 參數(shù)即可
運(yùn)行參數(shù)說明

--name mysql #鏡像運(yùn)行的容器名稱為 mysql
--rm #容器退出后刪除該容器
-p 3306:3306 #將本機(jī)的 3306 端口映射到該容器的 3306 端口
-e MYSQL_ROOT_PASSWORD=root #為容器配置一個(gè)名為 MYSQL_ROOT_PASSWORD, 值為 root 的環(huán)境變量, 因 mysql 容器的特殊性, 必須配置該環(huán)境變量
-d #在后臺(tái)運(yùn)行該容器

測(cè)試容器

在后臺(tái)運(yùn)行 mysql 容器

$ docker run --name mysql --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

查看當(dāng)前運(yùn)行容器列表

$ docker ps

docker ps.png

我們可以發(fā)現(xiàn) mysql 已在后臺(tái)運(yùn)行
此時(shí)我們可以使用 Navicat,SQLyog 進(jìn)行鏈接測(cè)試
ip: 運(yùn)行容器機(jī)器的 ip
端口:3306
用戶名:root
密碼:root, 即 MYSQL_ROOT_PASSWORD 對(duì)應(yīng)的值
亦可使用如下命令進(jìn)入 mysql 命令行

$ docker run -it --link mysql:mysql --rm mysql:5.7 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR"-P"$MYSQL_PORT_3306_TCP_PORT"-uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

運(yùn)行參數(shù)說明

-it #運(yùn)行容器后進(jìn)入一個(gè)交互式的終端
--link mysql:mysql #鏈接一個(gè)名稱為 mysql 的容器, 并為該容器配置一個(gè)名為 mysql 的 hosts
sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR"-P"$MYSQL_PORT_3306_TCP_PORT"-uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"' #為運(yùn)行容器后執(zhí)行的命令, 其中諸如 $MYSQL_PORT_3306_TCP_ADDR,$MYSQL_PORT_3306_TCP_PORT 環(huán)境變量是容器根據(jù) --link mysql:mysql 自動(dòng)生成

數(shù)據(jù)保存

mysql 鏡像默認(rèn)使用的配置文件為 /etc/mysql/my.cnf
如果我們需要自定義配置文件可以使用如下命令覆蓋原本配置

$ docker run --name mysql --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d -v ~/docker/data/mysql/my.cnf:/etc/mysql/my.cnf mysql:5.7

運(yùn)行參數(shù)說明

-v ~/docker/data/mysql/my.cnf:/etc/mysql/my.cnf #使用當(dāng)前機(jī)器下的 ~/docker/data/mysql/my.cnf 文件掛載為容器中的 /etc/mysql/my.cnf 文件

mysql 鏡像中默認(rèn)存儲(chǔ)目錄為 /var/lib/mysql, 這樣存在容器刪除后數(shù)據(jù)丟失的問題
為了防止這一情況產(chǎn)生, 我們需要將外部文件夾掛載到容器的 /var/lib/mysql

$ docker run --name mysql --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d -v ~/docker/data/mysql/datadir:/var/lib/mysql mysql:5.7

此時(shí)我們查看 ~/docker/data/mysql/datadir 文件夾

ll -h ~/docker/data/mysql/datadir

datadir 文件夾. png

發(fā)現(xiàn)已經(jīng)在該文件夾內(nèi)生成了一些 mysql 的初始化文件
關(guān)于 mysql 鏡像的更多信息可在 hub.docker.com 中對(duì)應(yīng)的 鏡像詳情 查看
關(guān)于其他如 redis,nginx,mongo 等鏡像的搭建及配置皆可在 hub.docker.com 中搜索查看

** 如果希望更加系統(tǒng)的學(xué)習(xí) Docker 信息, 請(qǐng)查看 官網(wǎng)文檔**
如果想查看中文文檔, 可以去看 Docker —— 從入門到實(shí)踐

相關(guān)資料
Docker 官方文檔
Docker —— 從入門到實(shí)踐
labs


  1. 參考自 Docker — 從入門到實(shí)踐 ?

  2. 參考自 Manage Docker as a non-root user ?



作者:jnil
鏈接:https://www.jianshu.com/p/c1b79afc6d63
來源:簡(jiǎn)書
著作權(quán)歸作者所有,。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多