步驟1:拉取mysql鏡像,拉取命令如下:(拉取MySQL鏡像時最好指定一個常用版本,不加版本號默認拉取 latest 版本,一般生產環境以求穩為主)
docker pull mysql:5.7
步驟2:拉取tomcat鏡像,拉取命令如下:
docker pull tomcat
步驟3:創建mysql的一個容器,容器的名字是db001,創建命令如下:
docker run --name db001 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
其中:
1)db001是自定義的mysql容器的別名
2)MYSQL_ROOT_PASSWORD=123456 是mysql數據root用戶的密碼
3)mysql是mysql的鏡像名稱,,5.7是版本號
步驟4:啟動tomcat容器,並與mysql建立連接,tomcat鏡像的名字是myweb,創建命令如下:
docker run -it -p 8080:8080 --link db001:dbhost -d tomcat
其中:
1)db001是步驟3中創建的mysql容器的名字,可以通過其訪問數據庫;
2)dbhost是個別名,web程序訪問mysq數據可以通過其訪問;
3)此時,在容器內部,會在/etc/hosts文件中用別名創建幾個條目,如下:
說明連接成功。
數據庫連接池配置:
附:
將自己的web項目部署到tomcat容器方法:
將打包后的war項目推送到宿主機器,然后使用如下命令拷貝到tomcat容器中的webapps目錄下:
docker cp myweb.war {web容器id}:/usr/local/tomcat/webapps/
或者直接以掛載的方式讓tomcat容器直接獲取本地war文件:
docker run -d -v /usr/docker_file/Demo.war:/usr/local/tomcat/webapps/Demo.war -p 8080:8080 tomcat
以上兩種方式建議在測試環境使用,畢竟要經常修改代碼 ,下面方式可以放到生產上使用。也是官網建議的方式:
vi Dockerfile
from tomcat:latest #你的 tomcat的鏡像 MAINTAINER XXX@qq.com #作者 (這一步可以不要,在新版本中已經是一個廢棄的字段) COPY NginxDemo.war /usr/local/tomcat/webapps #放置到tomcat的webapps目錄下
然后生成新的鏡像:
docker build -t web-demo:v1 .