通俗易懂了解什么是docker?以及docker的各種安裝環(huán)境!

一、docker是什么?

1.Docker的三個基本概念:

Image(鏡像)

Container(容器)

Repository(倉庫)

Docker的思想來自于集裝箱,集裝箱解決了什么問題?

在一艘大船上,可以把貨物規(guī)整的擺放起來。并且各種各樣的貨物被集裝箱標準化了,集裝箱和集裝箱之間不會互相影響。那么我就不需要專門運送水果的船和專門運送化學品的船了。只要這些貨物在集裝箱里封裝的好好的,那我就可以用一艘大船把他們都運走。docker就是類似的理念。現(xiàn)在都流行云計算了,云計算就好比大貨輪。docker就是集裝箱.

還不懂得話,在這么理解,docker你理解為快遞車.

那么快遞車是不是有一個個包裹,包裹可以理解為一個鏡像,鏡像可以理解為一個Java類,而容器可以理解為Java類的實例。

類只有一個,但可以new出千千萬萬個實例對象。所以,鏡像只是一個可以生成容器的東西,而容器才能讓程序運行起來。

倉庫的話,比如說,都應該用過git吧,完全可以理解為git,上傳拉取操作

那么docker有什么好處呢?

最簡單的一個例子,比如說,你在剛開始的一臺服務器部署項目,那么部署項目一定要配置mysql等環(huán)境是吧

那么現(xiàn)在你要吧這個項目遷移到另一臺服務器上,又要重寫在另一臺服務器上重寫配置mysql等環(huán)境.可能會出現(xiàn)版本錯亂等錯誤,很麻煩

那么現(xiàn)在第一次部署項目的時候,把項目等環(huán)境直接放進docker里面,下次你要遷移項目到另一臺服務器上,自己把docker鏡像上傳到docker倉庫上,然后再另一臺服務器拉取就直接O了,這只是好處之一

二、Linux安裝docker

安裝docker

卸載舊版本

sudo yum remove docker \

? ? ? ? ? ? ? ? ? docker-client \

? ? ? ? ? ? ? ? ? docker-client-latest \

? ? ? ? ? ? ? ? ? docker-common \

? ? ? ? ? ? ? ? ? docker-latest \

? ? ? ? ? ? ? ? ? docker-latest-logrotate \

? ? ? ? ? ? ? ? ? docker-logrotate \

? ? ? ? ? ? ? ? ? docker-engine

安裝docker需要依賴的包

sudo yum install -y yum-utils

告訴Linux,Docker安裝地址

sudo yum-config-manager \

? ? --add-repo \

? ? https://download.docker.com/linux/centos/docker-ce.repo

安裝Docker引擎,客戶端,容器

sudo yum install docker-ce docker-ce-cli containerd.io

啟動

sudo systemctl start docker

設置開機自啟

systemctl enable docker

配置阿里云鏡像加速(CnetOS)

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

執(zhí)行命令重啟

創(chuàng)建文件夾

sudo mkdir -p /etc/docker

配置鏡像加速器地址

sudo tee /etc/docker/daemon.json <<-'EOF'

{

? "registry-mirrors": ["https://這里需要登陸阿里云.com"]

}

EOF

重啟docker的后臺線程

sudo systemctl daemon-reload

重啟docker的服務

sudo systemctl restart docker


docker安裝mysq

安裝鏡像

docker pull mysql:5.7

查看docker中鏡像

docker images

創(chuàng)建實例并啟動

docker run -p 3306:3306 --name mysql \

-v /mydata/mysql/log:/var/log/mysql \

-v /mydata/mysql/data:/var/lib/mysql \

-v /mydata/mysql/conf:/etc/mysql \

-e MYSQL_ROOT_PASSWORD=root \

-d mysql:5.7

創(chuàng)建mysql配置文件

vi /mydata/mysql/conf/my.cnf

寫入配置信息

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

init_connect='SET collation_connection = utf8_unicode_ci'

init_connect='SET NAMES utf8'

character-set-server=utf8

collation-server=utf8_unicode_ci

skip-character-set-client-handshake

skip-name-resolve


重啟mysql容器

docker restart mysql


進入mysql容器內(nèi)部,并查看文件目錄

docker exec -it mysql /bin/bash

docker安裝redis

下載最新鏡像

docker pull redis

創(chuàng)建目錄結(jié)構(gòu)

mkdir -p /mydata/redis/conf

創(chuàng)建配置文件

touch /mydata/redis/conf/redis.conf

安裝redis(并掛載配置文件)

docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \

-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \

-d redis redis-server /etc/redis/redis.conf


連接到docker的redis

docker exec -it redis redis-cli

測試redis(exit:退出)

127.0.0.1:6379> set a b

OK

127.0.0.1:6379> get a

"b"

127.0.0.1:6379> exit

docker restart redis

修改redis配置文件(設置持久化)

appendonly yes

設置容器在docker啟動的時候啟動

docker update mysql --restart=always

docker update redis --restart=always

docker安裝nginx

首先要cd到mydata文件夾下面,創(chuàng)建文件夾

mkdir nginx

下載并啟動

docker run -p 80:80 --name nginx -d nginx:1.10

將容器內(nèi)的配置文件拷貝到當前nginx目錄(注意此時我們的位置在mydata文件夾下)

docker container cp nginx:/etc/nginx .

停止nginx容器

docker stop nginx

刪除nginx鏡像

docker rm nginx

重命名nginx文件夾為conf

mv nginx conf

再次創(chuàng)建nginx文件夾

mkdir nginx

將conf移動到nginx

mv conf nginx/

再次創(chuàng)建docker實例

docker run -p 80:80 --name nginx \

-v /mydata/nginx/html:/usr/share/nginx/html \

-v /mydata/nginx/logs:/var/log/nginx \

-v /mydata/nginx/conf:/etc/nginx \

-d nginx:1.10

設置開機啟動

docker update nginx --restart=always

訪問http://http://30.37.112.250/

默認訪問html文件夾,在html文件夾下創(chuàng)建index.html,并寫入<h1>hello</h1>,再次訪問就可以訪問到

在html文件夾下創(chuàng)建文件夾es,在es文件夾創(chuàng)建test.text,寫入張三

頁面訪問http://30.37.112.250/es/test.text即可訪問到

docker安裝RabbitMQ


Producer:消息生產(chǎn)者,負責生產(chǎn)和發(fā)送消息到Broker;

Broker:消息處理中心,負責消息存儲、確認、重試等;

Consumer:消息消費中心,負責從Broker中獲取消息并處理

異步性:將耗時的同步任務通過發(fā)送消息的方式進行異步處理,減少等待時間。

松耦合:不同系統(tǒng)、服務之間可以通過消息隊列進行通信,不用關(guān)心彼此的實現(xiàn)細節(jié),數(shù)據(jù)格式一致。

分布式:為了防止消息堵塞,可以對消費者集群進行橫向擴展,避免單點故障,同樣隊列本身也可以。

可靠性:將接收到的消息落盤,就算服務器重啟或者發(fā)生故障,恢復之后也能重新加載。

下載并且啟動

docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management

開機自啟動

docker update rabbitmq --restart=always

訪問rabbitmq

192.168.43.128:15672

賬號:guest

密碼:? guest


查看 docker 容器使用的資源(占用CPU,內(nèi)存的情況)

docker stats

docker 安裝elasticsearch

下載鏡像

docker pull elasticsearch:7.4.2

創(chuàng)建掛載目錄

mkdir -p /mydata/elasticsearch/config

mkdir -p /mydata/elasticsearch/data

寫入文件,可被遠程任何機器訪問

echo "http.host: 0.0.0.0" > /mydata/elasticsearch/config/elasticsearch.yml

運行,暴漏兩個端口? 9200 訪問端口 9300 節(jié)點通信端口? 單節(jié)點啟動

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 --privileged=true \

-e ``"discovery.type=single-node"`? `\

-e ES_JAVA_OPTS=``"-Xms64m -Xms128m"`? `\

-``v` `/mydata/elasticsearch/config/elasticsearch``.yml:``/usr/share/elasticsearch/config/elasticsearch``.yml? \

-``v` `/mydata/elasticsearch/data``:``/usr/share/elasticsearch/data`? `\

-``v` `/mydata/elasticsearch/plugins``:``/usr/share/elasticsearch/plugins`? `\

-d elasticsearch:7.4.2

需求給掛載文件夾授予權(quán)限

chmod -R 777 /mydata/elasticsearch

否則沒法啟動

docker start 26baf8009232

設置開啟自啟動

docker update Id號 --restart=always

如此就可以訪問了,但是虛擬機需要設置網(wǎng)絡端口 阿里云服務器需要設置 安全組 開發(fā)9200端口

訪問: 虛擬機ip地址加上 9200

http://192.168.56.1:9200/

安裝kibana

下載鏡像

docker pull kibana:7.4.2

# 一定記得改成自己的虛擬機(服務器地址)

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.1:9200 -p 5601:5601 -d kibana:7.4.2

設置開啟自啟動

docker update Id號 --restart=always

設置虛擬機地址映射

訪問 192.168.56.1:5601

需要等一會才能訪問成功


幾個cat命令

GET /_cat/nodes: 查看所有節(jié)點

GET /_cat/health: 查看es健康狀況

GET /_cat/master: 查看主節(jié)點

GET /_cat/indices: 查看所有索引

分詞器 Ik 支持中文分詞

https://gitee.com/jowell-jiawei/elasticsearch-analysis-ik-7.4.2

下載zip直接解壓 放到掛載的plugins文件夾下面

最后重啟Electicsearch

測試如下:

虛擬機平不同外網(wǎng)

1、開啟密碼登錄

vi /etc/ssh/sshd_config

修改 PasswordAuthentication yes

重啟服務 service sshd restart? 這樣就可Xshell登錄了

2、修改網(wǎng)卡

cd /etc/sysconfig/network-scripts/

修改eth1

NM_CONTROLLED=yes

BOOTPROTO=none

ONBOOT=yes

IPADDR=192.168.56.1

NETMASK=255.255.255.0

GATEWAY=192.168.56.1

DNS1=114.114.114.114

DNS2=8.8.8.8

DEVICE=eth1

PEERDNS=no

#VAGRANT-END

重啟網(wǎng)卡

service network restart

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內(nèi)容