偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

用了八年的方式-用 Docker 瞬間搭建本地開發(fā)環(huán)境

云計(jì)算 云原生
第一次可能比較慢,熟悉了之后就非??炝耍饶阍诒镜刂苯影惭b配置要快的多,而且一些軟件安裝配置起來非常繁瑣,會(huì)浪費(fèi)很多不必要的時(shí)間。

有些時(shí)候我們需要在本地搭開發(fā)環(huán)境,比如平時(shí)學(xué)習(xí)新技術(shù)的時(shí)候?;蛘哂袝r(shí)候公司的項(xiàng)目需要在本地建一套類似的,方便調(diào)試修改。

開發(fā)環(huán)境可能包括 MySQL、Redis、Nginx、MQ 、Elasticsearch等等,今天用的是 MySQL,明天又用PostgreSQL了,如果用啥都在本機(jī)裝一下的話,倒也不是不可以,但是就非常麻煩了,而且有時(shí)候安裝會(huì)遇到各種各樣的問題,很是不爽。

有什么快速有優(yōu)雅的方式?jīng)]有?

就是我們今天要說的 Docker 了,Docker 到現(xiàn)在為止,早就不是什么新技術(shù)了,甚至可以說是很普遍很大眾的技術(shù)方案了。

我記得我最早開始用 Docker 已經(jīng)是 2015年了,到現(xiàn)在已經(jīng)快8年了。只能感嘆,時(shí)間過得是真快呀!

圖片圖片

那段時(shí)間也把 Docker 安利給了不少同學(xué)、同事,我只是這樣告訴他們:“這玩意兒在本地搭一套開發(fā)環(huán)境真的很方便”,至于它后來發(fā)展成現(xiàn)在的規(guī)模,我也是沒想到的。

如果你是個(gè)開發(fā)老手兒,相信你早就用起來了。而如果你是個(gè)新手,那也要盡快用起來了,不僅能節(jié)省搭建環(huán)境的時(shí)間,還能學(xué)習(xí)學(xué)習(xí),畢竟現(xiàn)在容器化部署方式很普遍了,多了解了解還是非常有必要的。

Docker 原理和基礎(chǔ)命令

基本原理

用任何一種技術(shù)首先都要先了解它的技術(shù)原理,做到心中有數(shù)。

Docker 使用 Google 公司推出的 Go 語言進(jìn)行開發(fā)實(shí)現(xiàn),基于 Linux 內(nèi)核的cgroup,namespace,以及 OverlayFS類的 Union FS 等技術(shù),對(duì)進(jìn)程進(jìn)行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進(jìn)程獨(dú)立于宿主和其它的隔離的進(jìn)程,因此也稱其為容器。

Docker 經(jīng)常拿來和虛擬機(jī)來比較,因?yàn)樗鼈儍蓚€(gè)的用處和用法都很相似,就是在一臺(tái)實(shí)體機(jī)上啟動(dòng)多個(gè)虛擬系統(tǒng)(暫且這么說)。如果基于使用的層面來講,你完全可以把 Docker 當(dāng)做虛擬機(jī)來用,然而實(shí)際的底層技術(shù)原理是完全不一樣的。

假設(shè)你現(xiàn)在變身了,站在了 Docker 和 虛擬機(jī)的內(nèi)部,從里面向外看,發(fā)現(xiàn)虛擬機(jī)有自己的 CPU(虛擬CPU)、內(nèi)存、硬盤,再往外才是宿主機(jī)的 CPU、硬盤、內(nèi)存等。而如果是在Docker內(nèi)部向外看,發(fā)現(xiàn)你無論站在當(dāng)前實(shí)體機(jī)的哪個(gè)容器里,看到的都是宿主機(jī)的 CPU、硬盤、內(nèi)存等。說明 Dokcer 容器是直接拿宿主機(jī)的資源當(dāng)自己的用,所以每個(gè)容器的硬件配置都是一樣的,而虛擬機(jī)是完全虛擬出來一套。

基礎(chǔ)命令

Dokcer 的命令有一大堆,但是常用的就那幾個(gè)。

鏡像相關(guān)

獲取鏡像

docker pull 鏡像名稱

查看鏡像列表

docker image ls

容器相關(guān)

查看容器

docker ps -a

新建并啟動(dòng)容器

sudo docker run -t -i ubuntu:12.04  /bin/bash

進(jìn)入容器

docker exec -it 容器id bash

因?yàn)楸疚牟皇?Docker 的教程,所以只是拋磚引玉,具體的教程和文檔網(wǎng)上到處都是。

安裝 Docker Desktop

接下來開始本地實(shí)踐了,用 Docker 快速搭一套本地環(huán)境。

有一些 Docker 的可視化客戶端可以安裝,幫我們更方便更直觀的管理鏡像、容器,當(dāng)然如果你很厲害的話,完全用命令行也不是不行。

我就沒這么厲害了,那些參數(shù)根本記不住,所以必須要裝客戶端。我安裝的是 Docker Desktop,官方客戶端,支持 Mac、Linux、Windows,我大部分時(shí)候用 Mac,有時(shí)候也要用 Windows,所以Docker Desktop是不二選擇。

如果你只用 Mac 的話,也可以安裝 OrbStack(https://orbstack.dev/),據(jù)說比 Docker Desktop 要流暢一些。

下載安裝

訪問 Docker Desktop 官網(wǎng) https://www.docker.com/products/docker-desktop/,根據(jù)你的系統(tǒng)下載對(duì)應(yīng)的版本。

圖片圖片

下載完一鍵安裝就可以了,Docker 環(huán)境直接幫你裝好了,省心省事兒。下面是它的控制臺(tái)界面。左側(cè)導(dǎo)航可以查看鏡像列表、容器列表、映射的Volumes。

圖片圖片

我們?cè)诿钚休斎?nbsp;docker -v,如果出現(xiàn)正確的版本號(hào),說明 docker服務(wù)已經(jīng)安裝正常了。

Docker version 24.0.2, build cb74dfc

接下來有一件事兒是必須要做的,那就是設(shè)置國內(nèi)鏡像源,道理大家都懂,你要是用國外的鏡像源,一天都不一定能搞下來一個(gè)。

點(diǎn)擊「設(shè)置」按鈕,在左側(cè)選擇「Docker Engine」

圖片圖片

,然后在右側(cè)的配置框中添加如下配置,加到最下面即可:

"registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://cr.console.aliyun.com/"
  ]

加完后,點(diǎn)擊「Apply & restart」,這時(shí)候會(huì)重啟 Docker 服務(wù)。

安裝一個(gè)服務(wù)

MySQL、Nginx、Redis、Zookeeper 這些都是服務(wù),每一個(gè)都可以按照這種方式安裝,不管你的項(xiàng)目需要多少個(gè)服務(wù),一個(gè)個(gè)安裝就好了,很快的呦。

正好我最進(jìn)要學(xué)一下 PostgreSQL,我就直接啟動(dòng)一個(gè) docker 容器了,不在本地安裝了。當(dāng)然了,像數(shù)據(jù)庫這種I/O型的應(yīng)用是不建議容器化的,但是本地開發(fā)測(cè)試無所謂。

在這個(gè)搜索框輸入關(guān)鍵詞,查找對(duì)應(yīng)的鏡像,我在這里輸入關(guān)鍵詞 PostgreSQL。如果安裝 Nginx 那就是輸入 Nginx,以此類推。

圖片圖片

看,出來了一大堆,我一般都是找第一個(gè),也就是下載量最大的這個(gè)。

圖片圖片

可以 pull 或者 run,pull 是拉取鏡像,run 是拉取鏡像+啟動(dòng)容器。

圖片圖片

我一般都是直接 run,點(diǎn)一下 run,等一會(huì)兒,因?yàn)榍懊嬉呀?jīng)設(shè)置了國內(nèi)鏡像源,所以速度很快,十幾秒鐘。(根據(jù)網(wǎng)速快慢不同,因?yàn)橐螺d鏡像文件,有的應(yīng)用有上百M(fèi))

下載完之后,因?yàn)檫x的是 run,所以直接彈出了啟動(dòng)參數(shù)。

圖片圖片

設(shè)置鏡像名稱

容器名稱(Container name)就是為了我們一看到它就知道是干什么的,用來方便管理的,我就直接命名為 PostgreSQL了。

設(shè)置端口映射(Ports)

服務(wù)本身有自己的端口,例如 MySQL 是3306,這是服務(wù)本身在容器內(nèi)的啟動(dòng)端口,但最終我們要通過宿主機(jī)去訪問服務(wù),所以要將這個(gè)容器內(nèi)的端口綁定到一個(gè)宿主機(jī)端口,這叫做端口映射,這樣一來,我們就可以通過宿主機(jī)的端口訪問到容器內(nèi)的端口了。比如我將 MySQL 容器的 3306 端口映射到宿主機(jī)的 13306 端口,之后我在設(shè)置數(shù)據(jù)庫連接的時(shí)候,就用本機(jī) IP:13306就能訪問 MySQL 容器了。

在我這個(gè) PostgreSQL 容器上,我將本機(jī)的 15432和容器的 5432端口綁定,之后就可以用 15432做連接端口了。

目錄映射(Volumes)

很多服務(wù)都會(huì)用到存儲(chǔ)目錄,但是容器本身就在宿主機(jī)上,所以需要將服務(wù)在容器內(nèi)的目錄映射到宿主機(jī)的目錄上,這叫目錄映射。例如將 Nginx 容器的 /etc/nginx目錄映射到宿主機(jī)的 /apps/nginx/目錄上,那之后我在宿主機(jī)訪問 /apps/nginx目錄時(shí),就能看到 Nginx 容器的配置文件了。

在我這個(gè)PostgreSQL 容器上,我將 /etc/postgresql/postgresql.conf配置文件映射到了我本地的一個(gè)目錄上。

環(huán)境變量

一個(gè)服務(wù)啟動(dòng)可能會(huì)用到啟動(dòng)變量,這些變量可以通過環(huán)境變量的方式進(jìn)行配置。例如,我們啟動(dòng)一個(gè) Java jar 包,要配置 JVM 相關(guān)的參數(shù),這些參數(shù)就可以放到環(huán)境變量中,供啟動(dòng)的時(shí)候使用。

因?yàn)?PostgreSQL 需要密碼,所以這里就設(shè)置一個(gè)密碼的環(huán)境變量 POSTGRES_PASSWORD。

都設(shè)置好之后,點(diǎn)擊run按鈕,啟動(dòng)容器。

然后我們看到容器已經(jīng)啟動(dòng)了,有相應(yīng)的日志打印出來。

圖片圖片

然后點(diǎn)擊左側(cè)的Containers,可以看到已經(jīng)啟動(dòng)的容器和一些基本配置。

圖片圖片

然后就可以通過客戶端進(jìn)行連接了。

圖片圖片

圖片圖片

另外,還可以在容器詳情中查看容器的內(nèi)部文件、狀態(tài)、配置信息、日志等,以及進(jìn)入命令行。

圖片圖片

最后

第一次可能比較慢,熟悉了之后就非常快了,比你在本地直接安裝配置要快的多,而且一些軟件安裝配置起來非常繁瑣,會(huì)浪費(fèi)很多不必要的時(shí)間。

還有很多開源的框架、應(yīng)用提供docker版本,掌握了這個(gè)方法后,可以很快的安裝這些框架、應(yīng)用來驗(yàn)證和使用,用戶體驗(yàn)直接上升一個(gè)數(shù)量級(jí)。

責(zé)任編輯:武曉燕 來源: 古時(shí)的風(fēng)箏
相關(guān)推薦

2022-06-24 10:11:15

DockerLinux

2021-12-16 13:04:41

消息隊(duì)列緩存

2015-12-30 13:58:00

DockerGit開發(fā)環(huán)境

2018-08-01 14:42:07

團(tuán)隊(duì)職業(yè)工作

2025-06-24 08:04:45

2020-04-23 11:50:05

蘋果安全漏洞黑客

2018-09-11 17:40:23

容器數(shù)據(jù)云計(jì)算

2016-11-03 09:49:04

2016-09-08 16:04:59

JavaDocker前端

2009-08-18 11:01:51

2020-11-19 15:21:21

密碼網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2009-01-18 11:45:57

2022-04-07 07:36:04

APIJava 8JWT

2020-02-13 09:04:00

.com域名費(fèi)用

2014-10-30 09:50:05

HTML5

2010-04-26 16:16:28

龍芯服務(wù)器

2010-03-12 13:32:02

python2.6

2022-11-21 16:11:04

2009-07-03 16:56:37

JSP開發(fā)環(huán)境

2024-12-12 08:41:28

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)