Docker 構建 Java Web 開發環境(一)
Docker 構建 Java Web 開發環境(一)
使用 Docker 構建映象的兩種方法:
使用 docker commit 命令,直接在容器中操作(安裝軟體及配置檔案等),比較簡單直觀;
使用docker build命令和 Dockerfile檔案,可以模板化映象構建過程,方便複用。
所以推薦使用第二種方法,但本文是用第一種方法,用第二種方法構建請看另一篇文章:Docker 構建 Java Web 開發環境——使用Dockerfile(二)
docker 的安裝和簡單使用請看另一篇文章:Mac 安裝 Docker for Mac,下面直接開始使用。
準備工作
準備好 jdk8,tomcat8 的壓縮包,放到本地的一個資料夾下,比如 /data/software
開始製作
可以到 docker hub
倉庫中拉取centos
映象(這個倉庫可能會比較慢,也可以到國內的一些提供映象的倉庫中獲取,我是從公司的倉庫中拉的),如何操作可以看 docker 安裝那篇文章。
獲得centos的映象之後
docker images //會列出本地已有的映象
記住 centos 的 image id
比如說是 acc93762c23b
(這裡也可以不用 image id
,也可以用專案名+版本號)
執行命令
docker run -it -v /data/software/:/data/software/ acc93762c23b /bin/bash
-i 表示以“互動模式”執行容器
-t 表示容器啟動後會進入其命令列
-v 表示將本地目錄掛載到容器中對應的目錄
Mac 上在掛載目錄時,要在docker—>preference
設定中先新增要掛載的目錄/data/software
,否則貌似無法掛載
這樣就執行並進入了容器中,下面的操作就和在普通的 cents 系統中安裝軟體一樣了,到容器中的 /data/software
目錄下會看到本地系統的檔案都已經掛載到了該目錄下,安裝配置jdk可以參考: Mac、CentOS jdk安裝及配置
編寫啟動指令碼
需要編寫個啟動指令碼,當執行該容器時,執行指令碼來初始化容器中的環境,就像上面執行容器的命令中的 /bin/bash
的作用一樣
在容器中/data
目錄下新建指令碼 start.sh
指令碼內容如下
source /etc/profile //配置環境的位置,這個必須要
sh /usr/local/tomcat/bin/catalina.sh run //自己安裝的檔案位置
chmod u+x /data/start.sh //為執行指令碼新增執行許可權
建立映象
上面操作完後,用exit
命令退出容器
docker ps //可以看出容器已關閉
docker ps -l //顯示上次執行的容器,並記下容器id(CONTAINER ID)
根據上面的容器 id 建立個新映象:
docker commit 57c312bbaad1 liu/javaweb:1.0.0 //比如上個容器id是 57c312bbaad1 ,和git類似,可以加 -m “註釋”
使用建立的映象啟動一個容器
docker image //檢視剛建立的映象id (IMAGE ID)比如:25c5298b1a36
docker run -d -p 8080:8080 --name javaweb 25c5298b1a36 /data/start.sh //啟動容器命令
-d 以“守護模式”執行容器,即容器在後臺執行
-p 表示宿主機與容器的埠對映 (因此可以用宿主機的不同埠對映多個容器的8080埠,來做到獨立執行多個 java web 應用)
回到宿主機,在瀏覽器中輸入 http://local_ip:8080/ 看映象是否製作成功
如果想進容器看看日誌什麼的,可以執行下面命令
docker exec -it 0234d150d48f /bin/bash //0234d150d48f是正在執行的容器id 可以從 docker ps 中獲得
執行本地應用程式,可以將本地 war 目錄掛載到容器中 tomcat 的 webapps 目錄下,可以參見Docker 構建 Java Web 開發環境——使用Dockerfile(二)
相關文章
- Docker 構建 Java Web 開發環境——使用Dockerfile(二)DockerJavaWeb開發環境
- 構建Java Web開發環境JavaWeb開發環境
- Docker 構建統一的前端開發環境Docker前端開發環境
- 用 Docker 構建 PHP 開發環境DockerPHP開發環境
- 基於 Docker 構建統一的開發環境Docker開發環境
- 利用 Docker 構建一個簡單的 java 開發編譯環境DockerJava編譯
- 如何構建一個高效的 golang web 開發環境GolangWeb開發環境
- 如何構建基於 docker 的開發環境Docker開發環境
- 如何構建基於docker的開發環境Docker開發環境
- 徒手用 Docker 構建自己的 PHP 開發環境DockerPHP開發環境
- docker構建php環境DockerPHP
- Docker 構建PHP 映象環境DockerPHP
- Docker構建redis叢集環境DockerRedis
- 構建一個基於容器的開發環境開發環境
- 用Vagrant構建統一的golang開發環境Golang開發環境
- XamarinForms教程構建XamarinForms開發環境ORM開發環境
- 構建一個完整的基於Python3的Web開發環境PythonWeb開發環境
- 用 Docker 構建 MySQL 主從環境DockerMySql
- docker 靈活的構建 PHP 環境DockerPHP
- 【進階系列】前端開發環境構建(一)CSS -- Sass前端開發環境CSS
- 基於 Vagrant 構建 PHP 開發環境PHP開發環境
- linux下CUDA開發環境構建Linux開發環境
- docker 入門講解 - 構建本地環境Docker
- Docker配置PHP開發環境DockerPHP開發環境
- 酷!一鍵構建我自己的PHP框架的開發環境PHP框架開發環境
- 基於Docker環境構建redis單機容器DockerRedis
- 用前端姿勢玩docker【四】基於docker快速構建webpack的開發與生產環境前端DockerWeb
- 使用 Docker 搭建簡易的 Java Web 環境 (二)DockerJavaWeb
- java編譯環境的構建(轉)Java編譯
- 構建你的Office 365開發環境 - IOS版開發環境iOS
- 構建你的Office 365開發環境 - 其他版本開發環境
- Windows 下使用 Vagrant 構建 Linux 開發環境WindowsLinux開發環境
- centos8中快速搭建Java Web開發環境CentOSJavaWeb開發環境
- 用 Docker 搭建 Laravel 開發環境DockerLaravel開發環境
- 自建 Laravel 的 Docker 開發環境LaravelDocker開發環境
- docker搭建laravel開發環境lnmpDockerLaravel開發環境LNMP
- Docker下的Nacos環境開發Docker
- 使用 Docker 搭建本地開發環境!Docker開發環境