Linux服務器部署安裝docker以及各種服務配置(一)

隨着微服務的應用,docker的使用現在越來越廣泛,在項目中積累的學習經驗在此記錄一下:

docker詳解傳送門:https://blog.csdn.net/deng624796905/article/details/86493330

一、安裝部署docker環境

1)在線安裝docker

無論系統中是否有Docker,我們需要先卸載老版本,我們需要安裝新版本CE,其實我們應該知道Docker有分CE社區版本和EE企業版,後者是需要付費的,我們安裝CE免費版本。

yum remove docker docker-client docker-client-latest
docker-common docker-latest docker-latest-logrotate docker-logrotate
docker-selinux docker-engine-selinux docker-engine -y

1. 安裝docker-ce以及必要的包

yum install -y yum-utils device-mapper-persistent-data lvm2

2. 添加穩定版本源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3. 安裝docker-ce

yum install docker-ce

安裝過程如果詢問到是否繼續OK,全部輸入Y繼續

4. 啓動docker

systemctl start docker

5. 檢測docker是否安裝成功

docker run hello-world

最後,如果我們想要卸載docker,可以輸入"yum remove docker-ce"執行卸載,以及"rm -rf /var/lib/docker"清除所有的文件目錄

2)離線安裝docker

1. 在目標計算機上將tgz包上傳至/root路徑下,並解壓centos-local.tgz文件

cd /root
tar -xvzf centos-local.tgz

2. 安裝createrepo

cd /root/docker-ce-local
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
#注:createrepo版本可能不一樣,根據自己下載的包的版本安裝

3. 新增docker-ce-local.repo源文件,寫入以下內容

# vi /etc/yum.repos.d/docker-ce-local.repo
[docker-ce-local]
name=Local Yum
baseurl=file:///root/docker-ce-local/
gpgcheck=1
gpgkey=file:///root/docker-ce-local/gpg
enabled=1

4.  生成源索引及緩存

createrepo /root/docker-ce-local
yum makecache

5.  安裝docker-ce,並忽略gpg校驗

yum install docker-ce --nogpgcheck

6. 啓動服務並測試

systemctl start docker.service 
docker version

 7. 部署過程中遇到的問題整理

尋找yum源錯誤問題

a. 將/etc/yum.repos.d/文件夾下的yum源備份,先移除出該文件夾

b. 執行上述安裝步驟中的2

c. 安裝部署docker-ce,驗證通過後將yum源還原

二、安裝JDK(這裏安裝的是jdk-8u221-linux-x64.tar.gz)

百度網盤鏈接: https://pan.baidu.com/s/1RfjTxZ6e6fg37aAn2GlpcQ 
提取碼: en8f 
複製這段內容後打開百度網盤手機App,操作更方便哦

解壓jdk

移動文件到usr/java

配置環境變量 vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

保存:wq,退出

更新環境變量配置,通過命令source /etc/profile讓profile文件立即生效,在cmd中輸入Java或Java -version驗證是否配置成功

2) docker離線JDK

佔位,後續更新

三、部署安裝MySQL

1) 在線部署安裝

docker pull mysql:5.7.23 拉取MySQL鏡像

docker run -d --network host --name aeccmysql  -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin123 mysql:5.7.23 --lower_case_table_names=1 以host方式啓動MySQL容器,並且MySQL忽略大小寫

測試連接

2) 離線部署安裝

佔位,後續更新

四、部署安裝Redis

1) 在線部署安裝

docker pull redis:3.2.8  拉取指定版本的redis鏡像

docker run -d --network host --name aeccredis  -p 6379:6379 redis:3.2.8 以host方式啓動Redis容器

測試連接

2) 離線部署安裝

佔位,後續更新

五、部署安裝nginx

1) 在線部署安裝

從hup上pull鏡像

docker pull hub.c.163.com/library/nginx

創建將要掛載的目錄(這裏以實際項目業務爲例)

mkdir -p /home/aeccspringcloud/website/nginx/{conf,conf.d,html,logs}

先要有配置文件才能啓動容器

#######============nginx.conf ==============
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

#######============default.conf ==============
server {  
    listen       9002;  
    server_name  localhost;  
  
    #charset koi8-r;  
    #access_log  /var/log/nginx/log/host.access.log  main;  
  
    location / {
			# 指向我們打包後上傳的前端?文件
			root   /usr/share/nginx/html/sys;
			index index.html;
			try_files   $uri $uri/ /index.html;
    }  
  	location /jwt/ {
  		# 轉發請求到後端服務⽹網關
  		proxy_pass http://172.20.0.16:8765/jwt/;
  	}
  	
  	# 通過路路勁前綴將請求轉發到後端服務器器
  	location /api/ {
  		proxy_pass http://172.20.0.16:8765/api/;
  	}
  	
  	# 文件上傳通過zuul過濾
  	location /zuul/ {
  		proxy_pass http://172.20.0.16:8765/zuul/;
  	}
  	
  	# 文件服務器通過uploada過濾
  	location /upload/ {
  		default_type image/jpeg;
  		proxy_pass http://172.20.0.16:8763/upload/;
  	}
    error_page   500 502 503 504  /50x.html;  
    location = /50x.html {  
        root   /usr/share/nginx/html;  
    }  
}

啓動容器

其中-v後跟的是你放置在nginx中的項目路徑

docker run --name aeccnginx -d -p 9002:9002 -v /home/aeccspringcloud/website/nginx/html/:/usr/share/nginx/html -v /home/aeccspringcloud/website/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  -v /home/aeccspringcloud/website/nginx/logs:/var/log/nginx -v /home/aeccspringcloud/website/nginx/conf.d:/etc/nginx/conf.d -d hub.c.163.com/library/nginx:latest

 網頁訪問驗證成功與否

2) 離線部署安裝

佔位,後續更新

六、部署安裝Tomcat(根據需求,spring boot項目無需安裝)

1) 在線部署安裝

拉取鏡像

docker pull hub.c.163.com/library/tomcat:latest

docker pull tomcat:8.5.38-jre8

啓動tomcat

docker run -d --name aecctomcat -p 9422:8080 hub.c.163.com/library/tomcat:latest

掛在宿主機目錄方式啓動

docker run -d --name aecctomcat -p 端口:8端口 -v / 項目路徑:/usr/local/tomcat/webapps hub.c.163.com/library/tomcat:latest

 進入交互模式

docker exec -it aecctomcat /bin/bash

將準備好的 web 應用拷貝到 docker my-tomcat 容器, 這裏拷貝進去之後會自動部署, 直接就可以訪問

docker cp xxl-job-admin.war aecctomcat:/usr/local/tomcat/webapps(示例)

訪問網站驗證是否成功運行

2) 離線部署安裝

佔位,後續更新

七、部署安裝rabbitmq(根據業務需求)

1) 在線部署安裝

docker pull rabbitmq:management 拉取rabbitmq鏡像

docker run -d --network host --name aeccrabbit -e RABBITMQ_DEFAULT_USER=dev -e RABBITMQ_DEFAULT_PASS=dev123 -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management 以host方式啓動rabbitmq

測試rabbitmq

2) 離線部署安裝

佔位,後續更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章