容器(19)--Docker安裝常用軟件(上篇)

image

1.Docker安裝 nginx

關(guān)鍵字查找 Docker Hub 上的 nginx 鏡像

runoob@runoob:~/nginx$ docker search nginx

獲取官網(wǎng)鏡像

$ docker pull nginx

等待下載完成后颂碧,我們就可以在本地鏡像列表里查到 REPOSITORY 為 nginx 的鏡像

runoob@runoob:~/nginx$ docker images nginx

REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 555bbd91e13c 3 days ago 182.8 MB
以下命令使用 NGINX 默認(rèn)的配置來啟動一個 Nginx 容器實例

docker run --name runoob-nginx-test -p 8081:80 -d nginx
docker ps

  • runoob-nginx-test 容器名稱致燥。
  • the -d設(shè)置容器在在后臺一直運行帖烘。
  • the -p 端口進行映射,將本地 8081 端口映射到容器內(nèi)部的 80 端口箩朴。

執(zhí)行以上命令會生成一串字符串炭分,類似 6dd4380ba70820bd2acc55ed2b326dd8c0ac7c93f68f0067daecad82aef5f938蚌堵,這個表示容器的 ID厢绝,一般可作為日志的文件名。

我們可以使用 docker ps 命令查看容器是否有在運行:

$ docker ps
CONTAINER ID        IMAGE        ...               PORTS                  NAMES
6dd4380ba708        nginx        ...      0.0.0.0:8081->80/tcp   runoob-nginx-test

PORTS 部分表示端口映射带猴,本地的 8081 端口映射到容器內(nèi)部的 80 端口昔汉。
在瀏覽器中打開 http://127.0.0.1:8081/,效果如下:

Welcome to nginx拴清!

nginx 部署

首先靶病,創(chuàng)建目錄 nginx, 用于存放后面的相關(guān)東西

mkdir -p ~/dockerdata/nginx/html ~/dockerdata/nginx/logs ~/dockerdata/nginx/conf

拷貝容器內(nèi) Nginx 默認(rèn)配置文件到本地當(dāng)前目錄下的 conf 目錄,容器 ID 可以查看 docker ps 命令輸入中的第一列:(要查看拷貝的nginx.conf是否有數(shù)據(jù)壳嚎,沒有數(shù)據(jù)創(chuàng)建容器時會報錯的烁。解決方式:刪除拷貝的nginx.conf戳晌、重新拷貝。)

docker cp 6dd4380ba708:/etc/nginx/nginx.conf ~/dockerdata/nginx/conf  

  • www: 目錄將映射為 nginx 容器配置的虛擬目錄煤辨。
  • logs: 目錄將映射為 nginx 容器的日志目錄。
  • conf: 目錄里的配置文件將映射為 nginx 容器的配置文件木张。
運行容器

[root@localhost ~]# docker run -d -p 8081:80 --name container-nginx-web -v ~/dockerdata/nginx/html:/usr/share/nginx/html -v ~/dockerdata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/dockerdata/nginx/logs:/var/log/nginx nginx

命令說明:

  • -p 8081:80: 將容器的 80 端口映射到主機的 8081 端口众辨。
  • --name container-nginx-web:將容器命名為 runoob-nginx-test-web。
  • -v ~/dockerdata/nginx/html:/usr/share/nginx/html:將我們自己創(chuàng)建的 html目錄掛載到容器的 /usr/share/nginx/html舷礼。
  • -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:將我們自己創(chuàng)建的 nginx.conf 掛載到容器的 /etc/nginx/nginx.conf鹃彻。
  • -v ~/nginx/logs:/var/log/nginx:將我們自己創(chuàng)建的 logs 掛載到容器的 /var/log/nginx。

訪問:http://129.204.207.127:8081

2.Docker安裝 tomcat

查找Docker Hub上的tomcat鏡像

runoob@runoob:~/tomcat$ docker search tomcat

這里我們拉取官方的鏡像

runoob@runoob:~/tomcat$ docker pull tomcat

等待下載完成后妻献,我們就可以在本地鏡像列表里查到REPOSITORY為tomcat的鏡像蛛株。

runoob@runoob:~/tomcat$ docker images|grep tomcat
tomcat              latest              70f819d3d2d9        7 days ago          335.8 MB

tomcat部署

mkdir -p ~/dockerdata/tomcat/webapps ~/dockerdata/tomcat/logs ~/dockerdata/tomcat/conf

為配置多個tomcat服務(wù)改端口考慮

docker cp 6dd4380ba708:/usr/local/tomcat/conf/server.xml ~/dockerdata/tomcat/conf

運行容器
[root@localhost ~]# docker run --name tomcat -p 8080:8080 -v ~/dockerdata/tomcat/webapps:/usr/local/tomcat/webapps -v ~/dockerdata/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml -v ~/dockerdata/tomcat/logs:/usr/local/tomcat/logs -d tomcat

命令說明:

-p 8080:8080:將容器的8080端口映射到主機的8080端口
-v $PWD/test:/usr/local/tomcat/webapps/test:將主機中當(dāng)前目錄下的test掛載到容器的/test

查看容器啟動情況

runoob@runoob:~/tomcat$ docker ps 
CONTAINER ID    IMAGE     COMMAND               ... PORTS                    NAMES
acb33fcb4beb    tomcat    "catalina.sh run"     ... 0.0.0.0:8080->8080/tcp   tomcat

通過瀏覽器訪問:192.168.2.195:8080

3.Docker安裝 redis

查找Docker Hub上的redis鏡像

runoob@runoob:~/redis$ docker search  redis

這里我們拉取官方的鏡像,標(biāo)簽為3.2

runoob@runoob:~/redis$ docker pull  redis:3.2

等待下載完成后,我們就可以在本地鏡像列表里查到REPOSITORY為redis,標(biāo)簽為3.2的鏡像育拨。

runoob@runoob:~/redis$ docker images redis 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               3.2                 43c923d57784        2 weeks ago         193.9 MB

redis部署

創(chuàng)建redis目錄

mkdir -p ~/dockerdata/redis/data

說明:-v [圖片上傳失敗...(image-e4e041-1574564255984)]

PWD 是指當(dāng)前目錄的絕對路徑谨履,隨cd指令變化而變。

運行容器:
docker run -p 6379:6379 -v ~/dockerdata/redis/data:/data  -d redis:3.2 redis-server --appendonly yes

命令說明:
-p 6379:6379 : 將容器的6379端口映射到主機的6379端口
-v $PWD/data:/data : 將主機中當(dāng)前目錄下的data掛載到容器的/data
redis-server --appendonly yes : 在容器執(zhí)行redis-server啟動命令至朗,并打開redis持久化配置

查看容器啟動情況

runoob@runoob:~/redis$ docker ps
CONTAINER ID   IMAGE        COMMAND                 ...   PORTS                      NAMES
43f7a65ec7f8   redis:3.2    "docker-entrypoint.sh"  ...   0.0.0.0:6379->6379/tcp     agitated_cray

連接屉符、查看容器

使用redis鏡像執(zhí)行redis-cli命令連接到剛啟動的容器,主機IP為172.17.0.1

runoob@runoob:~/redis$ docker exec -it 43f7a65ec7f8 redis-cli
172.17.0.1:6379> info
# Server
redis_version:3.2.0
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:f449541256e7d446
redis_mode:standalone
os:Linux 4.2.0-16-generic x86_64
arch_bits:64
multiplexing_api:epoll
...

4.Docker安裝 mongodb

查找Docker Hub上的mongo鏡像

runoob@runoob:~/mongo$ docker search mongo

這里我們拉取官方的鏡像,標(biāo)簽為3.2

runoob@runoob:~/mongo$ docker pull mongo

等待下載完成后,我們就可以在本地鏡像列表里查到REPOSITORY為mongo,標(biāo)簽為3.2的鏡像。

runoob@runoob:~/mongo$ docker images mongo
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mongo               latest              63c6b736e399        2 days ago          379MB

mongodb部署

mkdir -p ~/dockerdata/mongodb/data/db

運行容器
docker run -p 27017:27017 -v ~/dockerdata/mongodb/data/db:/data/db -d mongo:3.2

命令說明:

-p 27017:27017 :將容器的27017 端口映射到主機的27017 端口
-v $PWD/db:/data/db :將主機中當(dāng)前目錄下的db掛載到容器的/data/db矗钟,作為mongo數(shù)據(jù)存儲目錄

查看容器啟動情況

runoob@runoob:~/mongo$ docker ps 
CONTAINER ID   IMAGE        COMMAND                   ...    PORTS                      NAMES
cda8830cad5f   mongo:3.2    "/entrypoint.sh mongo"    ...    0.0.0.0:27017->27017/tcp   suspicious_goodall

使用mongo鏡像執(zhí)行mongo 命令連接到剛啟動的容器,主機IP為172.17.0.1

runoob@runoob:~/mongo$ docker run -it mongo:3.2 mongo --host 172.17.0.1
MongoDB shell version: 3.2.7
connecting to: 172.17.0.1:27017/test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
  http://docs.mongodb.org/
Questions? Try the support group
  http://groups.google.com/group/mongodb-user
>

5.Docker安裝 mysql

查找Docker Hub上的mysql鏡像

runoob@runoob:/mysql$ docker search mysql
NAME                     DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                    MySQL is a widely used, open-source relati...   2529      [OK]       
mysql/mysql-server       Optimized MySQL Server Docker images. Crea...   161                  [OK]

這里我們拉取官方的鏡像,標(biāo)簽為5.6

runoob@runoob:~/mysql$ docker pull mysql:5.6

等待下載完成后唆香,我們就可以在本地鏡像列表里查到REPOSITORY為mysql,標(biāo)簽為5.6的鏡像。

runoob@runoob:~/mysql$ docker images |grep mysql
mysql               5.6                 2c0964ec182a        3 weeks ago         329 MB

mysql部署

mkdir -p ~/dockerdata/mysql/conf ~/dockerdata/mysql/logs ~/dockerdata/mysql/data

運行容器
docker run -p 3306:3306 --name mysql -v ~/dockerdata/mysql/conf:/etc/mysql/conf.d -v ~/dockerdata/mysql/logs:/logs -v ~/dockerdata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

命令說明:

  • -p 3306:3306:將容器的 3306 端口映射到主機的 3306 端口吨艇。
  • -v $PWD/conf:/etc/mysql/conf.d:將主機當(dāng)前目錄下的 conf/my.cnf 掛載到容器的 /etc/mysql/my.cnf躬它。
  • -v $PWD/logs:/logs:將主機當(dāng)前目錄下的 logs 目錄掛載到容器的 /logs。
  • -v $PWD/data:/var/lib/mysql :將主機當(dāng)前目錄下的data目錄掛載到容器的 /var/lib/mysql 东涡。
  • -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用戶的密碼冯吓。
查看容器啟動情況
runoob@runoob:~/mysql$ docker ps 
CONTAINER ID    IMAGE         COMMAND                  ...  PORTS                    NAMES
21cb89213c93    mysql:5.6    "docker-entrypoint.sh"    ...  0.0.0.0:3306->3306/tcp   mymysql

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市疮跑,隨后出現(xiàn)的幾起案子组贺,更是在濱河造成了極大的恐慌,老刑警劉巖祖娘,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件失尖,死亡現(xiàn)場離奇詭異,居然都是意外死亡渐苏,警方通過查閱死者的電腦和手機掀潮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琼富,“玉大人仪吧,你說我怎么就攤上這事【厦迹” “怎么了薯鼠?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長械蹋。 經(jīng)常有香客問我人断,道長,這世上最難降的妖魔是什么朝蜘? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任恶迈,我火速辦了婚禮,結(jié)果婚禮上谱醇,老公的妹妹穿的比我還像新娘暇仲。我一直安慰自己,他們只是感情好副渴,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布奈附。 她就那樣靜靜地躺著,像睡著了一般煮剧。 火紅的嫁衣襯著肌膚如雪斥滤。 梳的紋絲不亂的頭發(fā)上将鸵,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音佑颇,去河邊找鬼顶掉。 笑死,一個胖子當(dāng)著我的面吹牛挑胸,可吹牛的內(nèi)容都是我干的痒筒。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼茬贵,長吁一口氣:“原來是場噩夢啊……” “哼簿透!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起解藻,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤老充,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后螟左,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚂维,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年路狮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔚约。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡奄妨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出苹祟,到底是詐尸還是另有隱情砸抛,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布树枫,位于F島的核電站直焙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏砂轻。R本人自食惡果不足惜奔誓,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搔涝。 院中可真熱鬧厨喂,春花似錦、人聲如沸庄呈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诬留。三九已至斜纪,卻和暖如春贫母,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盒刚。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工腺劣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伪冰。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓誓酒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親贮聂。 傳聞我的和親對象是個殘疾皇子靠柑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

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