使用的工具是 XFTP5 XSHELL5
docker pull gmaslowski/jdk 拉取jdk
docker images 查詢下載的鏡像ID (如:390b58b1be42)
docker run -dit --network=hezhi --name=hzyy-web-server -v /data3/hzyy-web/server:/server -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /data3/hzyy/hzyy-web/files:/files 390b58b1be42
// /server /files 為映射后的文件名稱
docker pull redis
docker run -dit --network=hezhi --name=redis-pwd -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime redis --requirepass "123456"
docker pull nginx
//拉取一個nginx作為web容器
docker run -dit --network=hezhi --name=hzyy-web-web -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -p 8001:80 -v /data3/hzyy-web/web/:/web nginx
//其中8001 為對外的端口號
//通過default.conf 配置文件配置web要訪問的地址
default.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /web;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
location /api/ {
proxy_pass http://hzyy-web-server/;
#下邊是為獲取真實IP所做的設置
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect default;
}
}
docker run -dit --network=hezhi --name=hhzyy-web-manager -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -p 8002:80 -v /data1/hzyy/hzyy-web-manager/:/web nginx
cp default.conf /etc/nginx/conf.d/ 替換nginx配置文件(先把文件放進/manager)
好菜 -_-||
記錄一下思路,免得以后再忘
部署官網:
1.docker pull nginx 拉取nginx容器
2.使用 docker images 查看是否拉取成功
如若出現 nginx 表示拉取成功
3.然后使用 docker run -dit --network=hezhi --name=hzyy-web -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -p 8001:80 -v /data5/hzyy/hzyy-web/:/web nginx
其中 后面的nginx就是拉取后的 nginx的名字 或者用 IMAGE ID 也行
4.成功后會返回一長串什么東西 我也不知道 - -
5.然后使用docker ps 查看
若這樣 表示已經成功了
你已經成功了一大半了!!!!!!!!!加油!!!!
6. 然后 使用XFTP 把打包后的文件上傳到服務器內
7. 使用命令進入文件內
8. 命令 vi default.conf 創建一個名為default.conf 的文件
(為什么新建呢 之前我是在別的項目中拷貝的default.conf文件,然后下載到桌面上,在通過XFTP上傳到hzyy-web下,然后再將default.conf文件拷貝到 容器內的/etc/nginx/conf.d/ 下 然后重啟容器 容器會處於退出狀態,怎么啟都起不起來,然后就發現了這種方法可以,就只能通過這種笨方法操作)
9.將 以下這些暗號復制進去 以下紅色為要注意的地方,別的可以不用改
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /web;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
location /api/ {
proxy_pass http://hzyy-web-server/;
#下邊是為獲取真實IP所做的設置
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect default;
}
}
10.編輯后
11.然后進入容器內部 docker exec -it hzyy-web sh
進入后是這個鴨子
12.然后使用 cd web 進入 web目錄 然后ls
然后進入是這樣壓子
13.然后通過 mv default.conf /etc/nginx/conf.d/ 將default.conf文件移動到 conf.d目錄下
14然后exit 退出docker docker restart hzyy-web 重啟這個容器 就ok了
部署 JAVA
1.使用XFTP將項目copy到目錄內
目錄結構這樣
注意bin config 如果項目啟不了 可能是 bin和config的原因, 建議從別的項目中copy過來 (注意 盡量不要經過windows) linux->linux
2.注意config內的application.yml文件
3. 進入bin ./startup.sh 啟動 如果出現 *****failed 可能是權限不足 使用 chmod u+x *.sh 可解決
記錄一下部署時遇到的問題!!!!!!
1. 在部署web項目時 default.con文件 如果將windows下的default.conf文件用XFTP上傳到服務器中 可能會導致容器一直處於退出狀態
解決方法就是 docker rm [CONTAINER ID] 然后重新 創建
2. 解決default.conf 會導致容器處於退出狀態 (目前我使用的方法) 在 目錄內創建一個default.conf文件,然后將windows下的代碼復制到 服務器內的default.conf文件內 然后再進入docker容器內,將default.conf文件移動到 /etc/nginx/conf.d/ 下, 然后重啟容器 就ok了
為什么不在docker內編輯呢! 因為docker內好像不支持編輯 所以只能在docker外編輯,然后將編輯后的default.conf文件復制或移動到 docker內的 /etc/nginx/conf.d/
記錄一下使用到的命令
docker ps
docker images
docker images ps -a
history | grep "docker run *" 查看 歷史命令 docker run
docker exec -it hzyy-web sh
docker rm 085e8e68a09e
docker stop 085e8e68a09e
docker start 085e8e68a09e
docker restart 085e8e68a09e
vi default.conf
mv default.conf /etc/nginx/conf.d/
docker run -dit --network=hezhi --name=hzyy-web -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -p 8001:80 -v /data5/hzyy/hzyy-web/:/web nginx
docker run -dit --network=hezhi --name=hzyy-web-manager -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -p 8002:80 -v /data5/hzyy/hzyy-web-manager/:/web nginx
docker run -dit --network=hezhi --name=hzyy-web-server -v /data3/hzyy-web/server:/server -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /data3/hzyy/hzyy-web/files:/files 390b58b1be42