Docker(四):使用Docker部署tomcat、mysql、nginx静态服务器
使用Dokcer可以很好的對鏡像進行管理,創建和使用容器。這篇博客將簡單介紹一下如何使用Docker來安裝Tomcat、Mysql和Nginx文件服務器。相關閱讀:
Docker(一):Docker的安裝與常用命令
Docker(二):Docker常用命令之鏡像的創建:Dockerfile 與 commit
Docker(三):Docker鏡像導入與導出、恢復與加載與在Docker容器中安裝軟件
Docker(四):使用Docker部署tomcat、mysql、nginx文件服務器
?
一、安裝JDK環境:
安裝JDK的方法有多種:
1、手動解壓JDK的壓縮包,然后設置環境變量
2、用yum安裝JDK
3、用rpm安裝文件
1、手動解壓JDK壓縮包,設置環境變量(這里只介紹第一種):
(1)在/opt/目錄下創建software目錄:
[root@izwz9ib5he33fx3jnuis2xz ~]# mkdir /opt/software
(2)下載jdk,然后解壓,移動并重命名為jdk:
[root@izwz9ib5he33fx3jnuis2xz software]# tar -zxvf jdk-8u171-linux-x64.tar.gz
[root@izwz9ib5he33fx3jnuis2xz software]# sudo mv jdk1.8.0_171/ /opt/software/jdk
(3)配置環境變量:
[root@izwz9ib5he33fx3jnuis2xz ~]# vim ~/.bashrc
在文件的最后添加下面內容:
export JAVA_HOME=/opt/software/jdk
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
(4)讓配置生效:
[root@izwz9ib5he33fx3jnuis2xz ~]# source ~/.bashrc
(5)驗證是否配置成功:
[root@izwz9ib5he33fx3jnuis2xz ~]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode
?
?
二、安裝tomcat:
1、安裝步驟:
#1、搜索tomcat鏡像
[root@izwz9ib5he33fx3jnuis2xz ~]# docker search tomcat
#2、拉取tomcat鏡像
[root@izwz9ib5he33fx3jnuis2xz ~]# docker pull tomcat
#3、根據鏡像啟動tomcat容器
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name tomcat1 -d -p 8080:8080 tomcat
#4、查看本地的容器,可以看到tomcat容器已經啟動成功了
[root@izwz9ib5he33fx3jnuis2xz ~]# docker ps -a
CONTAINER ID ? ?IMAGE ? ? ?COMMAND ? ? ? ? ? ? ?CREATED ? ? ? ?STATUS ? ? ? ? PORTS ? ? ? ? ? ? ? ? ? ?NAMES
b2e9025226f0 ? ?tomcat ? ?"catalina.sh run" ? ? 2 days ago ? ? Up 2 days ? ?0.0.0.0:8080->8080/tcp ? ?tomcat1
2、測試:
在瀏覽器中輸入ip:映射端口,如 localhost:8080,出現下面頁面則代表成功
?
3、開啟多個tomcat容器:
????????以前沒有使用Docker的時候,如果想要開啟多個tomcat服務器,需要先復制tomcat相關文件目錄,再進入tomcat的配置文件中修改有關端口的配置,非常麻煩,費時費力?,F在,使用Docker,只需要在啟動容器的時候指定端口映射,就可以開啟多個tomcat服務器了,只需一條命令就可以代替以前的很多麻煩的操作。這也是Docker的強大之處之一。
例如:輸入下面的3條命令,就可以開啟3個tomcat服務器,并通過8082、8083、8084端口訪問到服務器了。
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name tomcat2 -d -p 8082:8082 tomcat
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name tomcat3 -d -p 8083:8083 tomcat
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name tomcat4 -d -p 8084:8084 tomcat
?
?
三、安裝mysql數據庫:
#1、搜索mysql鏡像
[root@izwz9ib5he33fx3jnuis2xz ~]# docker search mysql
#2、拉取mysql鏡像
[root@izwz9ib5he33fx3jnuis2xz ~]# docker pull mysql
#3、根據mysql鏡像啟動mysql容器,-e MYSQL_ROOT_PASSWORD是必填項,用于指定root用戶的密碼
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql
#4、查看本地的容器,可以看到mysql容器已經被創建成功了
[root@izwz9ib5he33fx3jnuis2xz ~]# docker ps -a
CONTAINER ID ? ? IMAGE ? ? ?COMMAND ? ? ? ? ? ? ? ?CREATED ? ? ? ?STATUS ? ? ? ? ?PORTS ? ? ? ? ? ? ? ? ? ?NAMES
d25a5947f7db ? ? mysql ? ?"docker-entrypoint..." ? 2 days ago ? ? Up 33 seconds ? 0.0.0.0:3306->3306/tcp ? mysql01
b2e9025226f0 ? ? tomcat ? "catalina.sh run" ? ? ? ?2 days ago ? ? Up 2 days ? ? ? 0.0.0.0:8080->8080/tcp ? tomcat1
?
?
四、安裝nginx靜態文件服務器:
1、安裝步驟:
#1、搜索nginx鏡像
[root@izwz9ib5he33fx3jnuis2xz ~]# docker search nginx
#2、拉取nginx鏡像
[root@izwz9ib5he33fx3jnuis2xz ~]# docker pull nginx
#3、根據nginx鏡像創建nginx容器
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name nginx -d -p 80:80 nginx
#4、查看本地的容器,可以看到nginx容器已經創建成功了
[root@izwz9ib5he33fx3jnuis2xz ~]# docker ps -a
CONTAINER ID ? ?IMAGE ? ? ?COMMAND ? ? ? ? ? ? ? ? ?CREATED ? ? ? ?STATUS ? ? ? ? ? ?PORTS ? ? ? ? ? ? ? ? ? NAMES
bcd974e90360 ? ?nginx ? ? "nginx -g 'daemon ..." ? 2 days ago ? ? Up 44 hours ? ? ? 0.0.0.0:80->80/tcp ? ? ? nginx
d25a5947f7db ? ?mysql ? ? "docker-entrypoint..." ? 2 days ago ? ? Up 18 minutes ? ? 0.0.0.0:3306->3306/tcp ? mysql01
b2e9025226f0 ? ?tomcat ? ?"catalina.sh run" ? ? ? ?2 days ago ? ? Up 2 days ? ? ? ? 0.0.0.0:8080->8080/tcp ? tomcat1
2、測試:如果訪問指定端口,我這里配置的是80端口,頁面出現如下信息則表示成功:
?
3、搭建文件服務器:
如果想要使用nginx搭建靜態文件服務器,并使用宿主機的目錄存放文件,則需要在創建容器的時候使用-v指定主機掛載目錄與容器被掛載的目錄。
(1)掛載主機目錄:
# 使用-v掛載目錄,冒號前面部分是主機要掛載文件路徑,冒號后面部分是掛載到容器的路徑 ?
# -v /home:/home表示將宿主機的home目錄下的所有文件掛載到容器的home目錄下 ??
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name nginx -d -p 80:80 -v /home:/home nginx
(2)打開配置文件:
#第一步:進入容器內部
[root@izwz9ib5he33fx3jnuis2xz ~]# docker exec -ti nginx /bin/bash
#第二步:修改nginx的配置文件
root@bcd974e90360:/# cd etc/nginx/conf.d/
root@bcd974e90360:/etc/nginx/conf.d# vim default.conf
(3)修改配置文件,使root根目錄指向掛載目錄:
server {
? ? listen ? ? ? 80;
? ? server_name ?localhost;
? ? #charset koi8-r;
? ? #access_log ?/var/log/nginx/host.access.log ?main;
? ? location / {
? ? ? ? #root ? /usr/share/nginx/html;
?? ? root ? /home/userfile; ?#修改root根目錄,使指向路徑為/home/userfile
? ? ? ? index ?index.html index.htm;
? ? }
備注: nginx容器中配置了文件存放地址是/home/userfile?,我們把本地目錄 /home?掛載到了容器的/home目錄中,所以我們要把存放文件的文件夾?userfile?放在本地目錄 /home?下面,
(4)測試:文件目錄的一張圖片路徑是這樣的: /home/userfile/hello.jpg
啟動nginx容器后,在瀏覽器訪問圖片地址,如果可以訪問到,則表示配置成功。
?
總結
以上是生活随笔為你收集整理的Docker(四):使用Docker部署tomcat、mysql、nginx静态服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker(三):镜像导入与导出、保存
- 下一篇: MySQL数据库:存储引擎