本文以圖文講解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

- 啟動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]