java項目在linux環(huán)境下部署(Docker容器)上

本文以圖文講解java項目在linux環(huán)境下部署,涉及到Docker容器安裝Mysql、Redis、Tomcat8,以及springboot應(yīng)用部署,基于Linux version 3.10.0-1160.el7.x86_64(Red Hat 4.8.5-44)。

Docker環(huán)境安裝

  • 安裝yum-utils;
yum install -y yum-utils device-mapper-persistent-data lvm2
  • 為yum源添加docker倉庫位置
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  • 安裝docker
yum install docker-ce
  • 啟動docker
systemctl start docker

MySQL安裝

  • 下載Mysql8.0Docker鏡像
docker pull mysql:8.0

查看鏡像

docker images
1.png
  • 啟動mysql服務(wù)
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0

需要將數(shù)據(jù)文件、日志保存其他目錄,添加mysql連接配置,可以在/mydata/mysql/my.cnf創(chuàng)建my.cnf文件(mydata/mysql本機目錄)。配置內(nèi)容如下:

[mysqld]
skip-name-resolve
user=root
default_authentication_plugin=mysql_native_password
lower_case_table_names=1 #忽略表名大小寫
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

啟動命令

docker run -p 3306:3306 --name mysql --privileged=true  -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/my.cnf:/etc/mysql/my.cnf -v /mydata/mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=123456  -d mysql:8.0

參數(shù)說明
-p:容器端口3306映射主機3306端口
--name:容器名稱
--privileged=true:容器擁有root權(quán)限(permission denied,權(quán)限禁止)
-v /mydata/mysql/data:/var/lib/mysql:數(shù)據(jù)文件掛載主機目錄
-v /mydata/mysql/my.cnf:/etc/mysql/my.cnf:數(shù)據(jù)庫配置掛載主機
-e MYSQL_ROOT_PASSWORD=123456:初始化root用戶密碼
-d: 返回容器id
mysql:8.0:容器標簽

  • 進入運行mysql的docker容器
docker exec -it mysql /bin/bash
簡寫:docker exec -it mysql bash

it ....bash:-it 會等容器內(nèi)的操作執(zhí)行完畢,而bash是打開容器內(nèi)的一個終端近程,又因為it的等待,所以就會一直以終端連接的方式停留在容器內(nèi)部。

  • 使用mysql命令打開客戶端
mysql -uroot -p123456

mysql遠程連接常見問題1
client does not support authentication protocol requested by server;
原因:mysql5.8密碼加密規(guī)則跟客戶端不一致,需要修改密碼加密規(guī)則
登錄mysql在use表執(zhí)行命令

alter user 'root'@'%' identified with mysql_native_password by '123456';

Redis安裝

  • 下載redis的docker鏡像
docker pull redis:6.2.6
  • 啟動Redis服務(wù)
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-d redis:6.2.6 redis-server --appendonly yes 

添加連接密碼參數(shù):--requirepass "123456"

  • 進入Redis容器使用redis-cli命令
docker exec -it redis bash

Tomcat8安裝

  • 獲取tomcat8的docker鏡像
docker pull tomcat:8.5.4
  • 啟動tomcat8命令
docker run -d -p 8091:8080 --name tm tomcat:8.5.4

tomcat高版本問題:
ls 查看文件夾內(nèi)容,可以發(fā)現(xiàn)下面有webapps文件夾和webapps.dist文件夾,將webapps.dist下的內(nèi)容全部異動到webapps中。
mv webapps.dist/* webapps

對外端口8091
http://ip:8091 可以看到tomcat管理頁面

docker常用命令

  • 啟動、重啟、停止docker服務(wù)
systemctl start docker
systemctl restart docker
systemctl stop docker
  • 刪除鏡像
docker rmi mysql:8.0
  • 查看容器(包括運行失敗容器)
docker ps -a
  • 啟動、停止、刪除容器
docker start NAMES
docker stop NAMES
docker rm NAMES 或者 CONTAINER ID(刪除容器id)
  • docker查看容器運行日志
docker logs NMAES --tail 100
  • docker 進入容器查看文件
命令1:docker exec -it bash
命令2:ls
注意:容器里不能執(zhí)行vim命令(需要下載安裝)

docker 修改容器參數(shù)

docker update 參數(shù) [容器名稱、Id]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容