摘要:實踐定制鏡像準備文件下載安裝包解壓修改文件移動相關文件修改文件,在的節點增加屬性?,F在能用賬號在對應的上進行在線部署操作。是一種推出的免費的公共鏡像庫服務。本地對鏡像打提交鏡像到倉庫
# CentOS
yum update && yum install -y wget curl unar
# Debain/Ubuntu
apt update && apt install -y wget curl unar
# 下載 tomcat8 安裝包 https://tomcat.apache.org/download-80.cgi
wget -N https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.61/bin/apache-tomcat-8.5.61.zip
# 解壓
unar apache-tomcat-8.5.61.zip && cd apache-tomcat-8.5.61
移動相關文件
mkdir tomcat8-docker
cp tomcat-users.xml server.xml tomcat8-docker/
cd tomcat8-docker
修改 server.xml
文件,在 port="8080"
的 Connector
節點增加屬性URIEncoding="UTF-8"
。
原因:將 get
請求中的參數做 UTF-8
編碼,以后在瀏覽器的地址欄可以直接輸入中文參數。
修改 tomcat-users.xml
文件,在tomcat-users
節點中增加以下內容。
創建 manager.xml
文件。
現在能用 tomcat
賬號在對應的 tomcat
上進行在線部署操作。
新建文件 Dockerfile
touch Dockerfile
cat > Dockerfile << -EOF
# First docker file from kongren
# VERSION 0.0.1
# Author: kongren
# 基礎鏡像
FROM tomcat
# 作者
MAINTAINER kongren
# 定義工作目錄
ENV WORK_PATH /usr/local/tomcat/conf
# 定義manager.xml工作目錄
ENV MANAGER_PATH /usr/local/tomcat/conf/Catalina/localhost
# 定義要替換的文件名
ENV USER_CONF_FILE_NAME tomcat-users.xml
# 定義要替換的server.xml文件名
ENV SERVER_CONF_FILE_NAME server.xml
# 定義要新增的manager.xml文件名
ENV MANAGER_CONF_FILE_NAME manager.xml
# 刪除原文件tomcat-users.xml
RUN rm $WORK_PATH/$USER_CONF_FILE_NAME
# 復制文件tomcat-users.xml
COPY ./$USER_CONF_FILE_NAME $WORK_PATH/
# 刪除原文件server.xml
RUN rm $WORK_PATH/$SERVER_CONF_FILE_NAME
# 復制文件server.xml
COPY ./$SERVER_CONF_FILE_NAME $WORK_PATH/
# 復制文件manager.xml
COPY ./$MANAGER_CONF_FILE_NAME $MANAGER_PATH/
EOF
以上就是Dockerfile的全部內容,每一行都有使用說明。幾個關鍵點如下:
FROM tomcat
的意思是使用tomcat
作為基礎鏡像;tomcat
作為基礎鏡像后,通過RUN rm
命令將原有的server.xml
和tomcat-users.xml
文件刪除;server.xml
和tomcat-users.xml
文件復制到原來的conf
目錄下,這樣就用取代了原有的文件;構建 tomcat
鏡像
$ docker build -t kongren/tomcat:8.5.61 .
Sending build context to Docker daemon 18.94kB
Step 1/12 : FROM tomcat
---> 6fa48e047721
Step 2/12 : MAINTAINER kongren
---> Using cache
---> 3edb5058268f
Step 3/12 : ENV WORK_PATH /usr/local/tomcat/conf
---> Using cache
---> 171752ea6f68
Step 4/12 : ENV MANAGER_PATH /usr/local/tomcat/conf/Catalina/localhost
---> Using cache
---> f196a2426d3a
Step 5/12 : ENV USER_CONF_FILE_NAME tomcat-users.xml
---> Using cache
---> 6fae9cc05145
Step 6/12 : ENV SERVER_CONF_FILE_NAME server.xml
---> Using cache
---> ad86732af7c2
Step 7/12 : ENV MANAGER_CONF_FILE_NAME manager.xml
---> Using cache
---> 2014bd71fe8d
Step 8/12 : RUN rm $WORK_PATH/$USER_CONF_FILE_NAME
---> Using cache
---> 637698cb46e0
Step 9/12 : COPY ./$USER_CONF_FILE_NAME $WORK_PATH/
---> Using cache
---> 14a33261309b
Step 10/12 : RUN rm $WORK_PATH/$SERVER_CONF_FILE_NAME
---> Using cache
---> c911d2047dd5
Step 11/12 : COPY ./$SERVER_CONF_FILE_NAME $WORK_PATH/
---> Using cache
---> 8290b98670d7
Step 12/12 : COPY ./$MANAGER_CONF_FILE_NAME $MANAGER_PATH/
---> Using cache
---> 141d73e3bc18
Successfully built 141d73e3bc18
Successfully tagged kongren/tomcat:8.5.61
執行完畢后,輸入docker images
命令可以查看當前本機的鏡像。
$ docker images
啟動 tomcat
。
$ docker run --name=tomcat8 -p 8080:8080 -e TOMCAT_SERVER_ID=tomcat_server_001 -idt tomcat:8.5.61
執行docker ps
命令,可以看到啟動的容器:
$ docker ps
http://:8080
,可以看到熟悉的頁面這里使用 Ucloud 的 公共鏡像庫 UHub。UHub 是一種 UCloud 推出的免費的公共鏡像庫服務。
登錄鏡像倉庫。
$ docker login uhub.service.ucloud.cn -u ren@outlook.pt
本地對鏡像打 tag
:
$ docker tag kongren/tomcat:8.5.61 uhub.service.ucloud.cn/kongren/tomcat:8.5.61
提交鏡像到倉庫:
$ docker push uhub.service.ucloud.cn/kongren/tomcat:8.5.61
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125936.html
Docker技術之構建鏡像和網絡模式解析 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
摘要:創建用戶組并添加用戶。默認情況下是過濾掉所有的入站規則。初始命令表示一旦容器啟動,需要運行的命令,此時使用,表示什么也不做,只需進入命令行即可。1.什么是docker docker翻譯為搬運工,在這里應該可以理解為搬運應用的工具,也就是云.先了解其運用場景之后更容易對他形成深刻理解. Docker提供了一種可移植的配置標準化機制,允許你一致性地在不同的機器上運行同一個Container;...
摘要:的主要作用是自己根據基礎鏡像,重新定制鏡像,而不是直接從官方倉庫拿現成的使用。以接下來要構建的環境來說明下,下面我將要搭建一個的開發環境,需要進行配合。它的主要作用是持久化數據,避免容器銷毀后內部數據丟失暴露到宿主機的端口。 以前一直使用 Vagrant 作為自己的開發環境,并且在上家公司也推行大家采用 Vagrant 作為開發環境,保障公司使用的是同一套開發環境。隨著docker的流...
摘要:的主要作用是自己根據基礎鏡像,重新定制鏡像,而不是直接從官方倉庫拿現成的使用。以接下來要構建的環境來說明下,下面我將要搭建一個的開發環境,需要進行配合。它的主要作用是持久化數據,避免容器銷毀后內部數據丟失暴露到宿主機的端口。 以前一直使用 Vagrant 作為自己的開發環境,并且在上家公司也推行大家采用 Vagrant 作為開發環境,保障公司使用的是同一套開發環境。隨著docker的流...
閱讀 3514·2023-04-25 20:09
閱讀 3720·2022-06-28 19:00
閱讀 3035·2022-06-28 19:00
閱讀 3058·2022-06-28 19:00
閱讀 3132·2022-06-28 19:00
閱讀 2859·2022-06-28 19:00
閱讀 3014·2022-06-28 19:00
閱讀 2610·2022-06-28 19:00