IDEA部署Docker鏡像的實(shí)現(xiàn)示例
Docker
開(kāi)啟虛擬機(jī),打開(kāi) finalshell 客戶端
- 開(kāi)啟docker
service docker start
鏡像操作
- 查看鏡像
docker images
- 搜索鏡像
docker serarch 鏡像名
- 拉取鏡像
docker pull 鏡像名:標(biāo)簽號(hào)
例如:docker pull mysql:5.7.26
- 刪除鏡像
docker rmi 鏡像ID/名稱
容器操作
查詢?nèi)萜?
docker ps
, 查看所有容器docker ps -a
刪除容器
docker rm 容器ID/容器名
開(kāi)啟容器
docker start 容器ID/容器名
停止容器
docker stop 容器ID/容器名
進(jìn)入容器操作
docker exec -it 容器ID bash
查看容器日志
docker logs Name/ID
拷貝文件到宿主機(jī)
docker cp -a bb397b55cde0:/tmp/ /tmp
拷貝文件到容器
docker cp -a /tmp bb397b55cde0:/tmp/
開(kāi)啟Docker的遠(yuǎn)程連接
編輯文件 docker.service
vi /usr/lib/systemd/system/docker.service
找到
ExecStart=/usr/bin/dockerd
這一行將其改為如下內(nèi)容:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
重新加載配置文件
systemctl daemon-reload
重啟docker
systemctl restart docker
查看 2375 端口是否開(kāi)放
netstat -nlpt
也可以直接訪問(wèn)
curl http://127.0.0.1:2375/info
,如果有返回信息,則已開(kāi)放
IDEA 下載 插件
PS:總覺(jué)得這個(gè)插件有bug,如在 容器里設(shè)置了參數(shù)不生效。。。
在 Settings->Plugins->Marketplace 搜索 docker
安裝完重啟 IDEA
然后在 Settings 里搜索 docker ,配置上docker 地址,下面顯示 successful 即連接成功
在 IDEA 頁(yè)面的下面 有個(gè) docker 的按鈕,點(diǎn)開(kāi)可以看到docker里所有的容器,所有的鏡像
IDEA 推送鏡像
首先maven clean 清理本地代碼
maven package 打包本地項(xiàng)目,生成 jar
在 DockerFile 頁(yè)面,編輯
/usr/share/fonts/dejavu/
如果需要 docker里的mysql ,則 在配置文件里 這樣寫即可:
url: jdbc:mysql://mysql:3306/DBname?characterEncoding=utf8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
點(diǎn)擊運(yùn)行就可以將上面生成的 jar 打包成 docker 鏡像,并上傳到 docker 里。
如果項(xiàng)目依賴較多,需要較長(zhǎng)時(shí)間
在IDEA 控制臺(tái)就可以看到上傳成功的 鏡像,可以新建容器,運(yùn)行
在IDEA 控制臺(tái)也可以配置 容器的參數(shù),比如端口映射,掛載文件,啟動(dòng)日志等,十分方便。
就醬,后臺(tái)項(xiàng)目就啟動(dòng)完成了,物理機(jī)訪問(wèn)虛擬機(jī)ip 加上映射出來(lái)的端口號(hào)就可以訪問(wèn)到接口了
不過(guò),僅能訪問(wèn)后臺(tái)接口不是我們最終要的效果,得有界面啊!
安裝MySQL
拉取鏡像
docker pull mysql:5.7.26
啟動(dòng)
docker run -p 3306:3306 --name mysql:5.7.26 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26
配置外網(wǎng)訪問(wèn)
進(jìn)入容器
docker exec -it 47e74a93cf87 bash
登錄
mysql -uroot -p
輸入密碼命令
grant all privileges on *.* to root@"%" identified by "123456" with grant option;
刷新
flush privileges;
之后就可以我們就可以在物理機(jī)上通過(guò)nvicate 來(lái)連接上。
安裝nginx
拉取鏡像: docker pull nginx
查看鏡像: docker images
在宿主機(jī)創(chuàng)建配置文件目錄
mkdir -p /data/nginx/{conf,conf.d,html,log}
nginx.conf
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { index index.html index.htm; root /usr/share/nginx/html; charset utf-8; try_files $uri $uri/ /index.html; } location ^~/api/ { proxy_pass http://192.168.1.130:8080/; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
index.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>docker搭建nginx</title> </head> <body> <h1>docker搭建nginx映射成功</h1> </body> </html>
啟動(dòng)并掛載配置文件目錄
docker run --name my_nginx -d -p 80:80 -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/log:/var/log/nginx -v /data/nginx/html:/usr/share/nginx/html nginx
在物理機(jī)訪問(wèn) 虛擬機(jī)ip ,看是否成功
重啟nginxdocker restart 容器ID
部署項(xiàng)目
- 將前端項(xiàng)目,build ,將生成的 dist 文件夾里的內(nèi)容上傳到 html 目錄
- 在 nginx.conf 配置文件里配置后臺(tái)接口地址
- 訪問(wèn)nginx 服務(wù)器ip,測(cè)試是否可以訪問(wèn)。
遠(yuǎn)程訪問(wèn)
經(jīng)過(guò)上面的操作,我們已經(jīng)可以在本地跑起來(lái)idea 里的項(xiàng)目了,在idea控制臺(tái)也可以直接看到項(xiàng)目的運(yùn)行日志。
那么,如果我們要給領(lǐng)導(dǎo)或者客戶看項(xiàng)目的進(jìn)度怎么辦?
可以使用 內(nèi)網(wǎng)穿透,將局域網(wǎng)的 ip 映射出去。
之前使用的 ngrok.cc, 免費(fèi)的總是斷,體驗(yàn)不是很好。推薦一個(gè)穩(wěn)定點(diǎn)的。utools,里面有內(nèi)網(wǎng)穿透的功能,目前來(lái)說(shuō)還是挺快挺好用的。
使用界面如下圖所示:
完結(jié)撒花~~
Docker 容器中文字體亂碼問(wèn)題
?在宿主機(jī)內(nèi)安裝中文字體
查看已經(jīng)安裝的中文字體 fc-list :lang=zh
如果沒(méi)有這個(gè)命令,安裝上 yum -y install fontconfig
將Windows 上的 C:\Windows\Fonts 文件夾下的字體文件上傳到 服務(wù)器目錄 /usr/share/fonts/dejavu/
下
?比如 : 宋體字 (simsun.ttc)
清除緩存 fc-cache
然后在需要中文字體的容器里掛載宿主機(jī)的 字體文件, ==,冒號(hào)前為宿主主機(jī)目錄,冒號(hào)后為容器對(duì)應(yīng)目錄==
docker run -p 80:80--name demo -v /usr/share/fonts/dejavu/:/usr/share/fonts/
到此這篇關(guān)于IDEA部署Docker鏡像的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)IDEA部署Docker鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MyBatis如何調(diào)用存儲(chǔ)過(guò)程與存儲(chǔ)函數(shù)
這篇文章主要介紹了MyBatis如何調(diào)用存儲(chǔ)過(guò)程與存儲(chǔ)函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Java多線程執(zhí)行處理業(yè)務(wù)時(shí)間太久解決方法代碼示例
這篇文章主要介紹了Java多線程執(zhí)行處理業(yè)務(wù)時(shí)間太久解決方法代碼示例的相關(guān)資料,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12Java兩種方法計(jì)算出階乘尾部連續(xù)0的個(gè)數(shù)
這篇文章主要介紹了Java兩種方法計(jì)算出階乘尾部連續(xù)0的個(gè)數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03解析Mybatis的insert方法返回?cái)?shù)字-2147482646的解決
這篇文章主要介紹了解析Mybatis的insert方法返回?cái)?shù)字-2147482646的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Java項(xiàng)目Guava包?HashMultimap使用及注意事項(xiàng)
guava基本上可以說(shuō)是java開(kāi)發(fā)項(xiàng)目中,大概率會(huì)引入的包,今天介紹的主角是一個(gè)特殊的容器HashMultmap,可以簡(jiǎn)單的將它的數(shù)據(jù)結(jié)構(gòu)理解為Map<K,?Set<V>>,今天主要介紹下基礎(chǔ)的知識(shí)點(diǎn)?HashMultmap級(jí)使用,感興趣的朋友一起看看吧2022-05-05springboot2.X整合prometheus監(jiān)控的實(shí)例講解
這篇文章主要介紹了springboot2.X整合prometheus監(jiān)控的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03基于spring?@Cacheable?注解的spel表達(dá)式解析執(zhí)行邏輯
這篇文章主要介紹了spring?@Cacheable?注解的spel表達(dá)式解析執(zhí)行邏輯,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01idea啟動(dòng)項(xiàng)目提示端口占用的問(wèn)題解決
有時(shí)候當(dāng)我們使用Tomcat啟動(dòng)web項(xiàng)目時(shí),會(huì)提示端口占用,導(dǎo)致啟動(dòng)失敗,本文就來(lái)介紹一下端口占用的解決方法,具有一定的參考價(jià)值,感興趣的可以了解下2023-08-08