docker時(shí)區(qū)問題和遷移數(shù)據(jù)問題
最新解決辦法:
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone -v /etc/localtime:/etc/localtime:ro
docker run --name tomcat-service-0 -d -p 8080:8080 -v /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone -v /etc/localtime:/etc/localtime:ro -v /home/zjy/logs/tomcat-service-0:/usr/local/tomcat/logs -v /home/zjy/code/ligu/target:/usr/local/tomcat/webapps tomcat
問題1
項(xiàng)目在使用docker部署的時(shí)候,發(fā)現(xiàn)docke容器里面的時(shí)區(qū)和服務(wù)器的時(shí)間相差8個(gè)小時(shí)。
盡管使用 -v /etc/localtime:/etc/localtime 將服務(wù)器時(shí)間和容器掛載同步了,但是容器里的tomcat的時(shí)區(qū)仍然差8個(gè)小時(shí)。
說明
-v /etc/localtime:/etc/localtime
在啟動(dòng)的時(shí)候,使用這個(gè)命令,僅僅是將服務(wù)器和容器里系統(tǒng)的時(shí)間掛載了,你可能進(jìn)入到容器里面再執(zhí)行
“date” 命令看到,容器里面的時(shí)間的確是更改過來了,但是容器里面的tomcat運(yùn)行的環(huán)境的日期,實(shí)際上仍未更改。
因?yàn)槲覀冊(cè)趐ull獲取這個(gè)tomcat鏡像的時(shí)候,這個(gè)tomcat容器的時(shí)區(qū)已經(jīng)固定了,所以我們唯一的辦法是在編譯這個(gè)tomcat鏡像的時(shí)候,就將本地服務(wù)器的時(shí)間和這個(gè)鏡像綁定起來。
解決辦法(超簡(jiǎn)單)
使用dockerFile編譯鏡像。 Dockerfile如下
# Pull base image FROM tomcat:latest ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
執(zhí)行如下命令
命令格式: $docker build -t image_name Dockerfile_path $:docker build -t timetomcat/timetomcat .
然后后邊啟動(dòng)容器的時(shí)候,使用編譯的這個(gè)tomcat即可
如圖
docker 容器遷移
說明
docker部署的服務(wù)器發(fā)生變化的時(shí)候,比如數(shù)據(jù)庫(kù),想部署到一個(gè)新的地址,這些數(shù)據(jù)遷移有很多辦法:
針對(duì)數(shù)據(jù)庫(kù):
1 使用mysql 的主從復(fù)制備份,在項(xiàng)目運(yùn)行期間,將mysql服務(wù)器備份到多個(gè)地址,具體請(qǐng)看地址:https://zhangjy520.github.io/
2 使用啟動(dòng)mysql的時(shí)候,使用 -v 掛載 將本地的路徑和容器路徑綁定,然后遷移的時(shí)候?qū)⒈镜氐穆窂綇?fù)制到新服務(wù)器即可
-v /home/mysql/master/data/db-conf:/etc/mysql/ -v /home/mysql/master/data/db-data:/var/lib/mysql
3 導(dǎo)出mysql數(shù)據(jù)庫(kù)唄,再導(dǎo)入到新的地址,比較low
4 使用docker的容器遷移。這篇博客主要講的是docker,這里我們主要講講如何使用docker遷移
解決辦法(超簡(jiǎn)單) 容器遷移
export / import
源服務(wù)器上執(zhí)行
docker export 83271b648212 >time.tar //導(dǎo)出容器,這里這個(gè)數(shù)字是容器id,會(huì)得到一個(gè) tar壓縮包
解釋:這個(gè)壓縮包打開可以看到,其實(shí)是一個(gè)linux服務(wù)器的目錄結(jié)構(gòu),這個(gè)命令將容器以及容器運(yùn)行的環(huán)境打包了
在目的服務(wù)器上執(zhí)行
cat time.tar | sudo docker import - time:v2 //導(dǎo)入容器,導(dǎo)入得到一個(gè)鏡像,使用 帶command /bin/bash 的docker run 即可得到之前的容器包括文件
啟動(dòng)鏡像
sudo docker run -itd --name import_test -p 8087:8080 time:v2 /bin/bash
save / load
sudo docker save web > web.tar sudo docker load < web.tar
到此這篇關(guān)于docker時(shí)區(qū)問題和遷移數(shù)據(jù)問題的文章就介紹到這了,更多相關(guān)docker時(shí)區(qū)問題和遷移數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker容器設(shè)置時(shí)區(qū)的幾種方式小結(jié)
- Docker時(shí)間不一致,時(shí)區(qū)設(shè)置方式
- docker容器時(shí)區(qū)錯(cuò)誤問題
- Docker Alpine鏡像時(shí)區(qū)問題完美解決方案
- Docker的MySQL容器時(shí)區(qū)問題修改
- docker中時(shí)區(qū)問題的處理方法
- 詳解修改docker時(shí)區(qū)及docker常用命令
- 兩種方式創(chuàng)建docker鏡像的啟動(dòng)容器時(shí)區(qū)別介紹(總結(jié)篇)
- 為運(yùn)行中的docker容器設(shè)置時(shí)區(qū)
相關(guān)文章
Docker容器中的OpenCV如何輕松構(gòu)建可移植的計(jì)算機(jī)視覺環(huán)境
計(jì)算機(jī)視覺是一門涉及圖像和視頻處理的領(lǐng)域,可以應(yīng)用于目標(biāo)檢測(cè)、圖像識(shí)別、人臉識(shí)別等各種任務(wù),本文給大家介紹Docker容器中的OpenCV如何輕松構(gòu)建可移植的計(jì)算機(jī)視覺環(huán)境,感興趣的朋友一起看看吧2023-12-12Docker部署用Python編寫的Web應(yīng)用的實(shí)踐
本文主要介紹了Docker部署用Python編寫的Web應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09搭建docker內(nèi)網(wǎng)私服的方法(docker-registry with nginx&ssl on centos)
這篇文章主要介紹了搭建docker內(nèi)網(wǎng)私服的方法(docker-registry with nginx&ssl on centos),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05Docker安裝Jenkins的實(shí)現(xiàn)步驟
版本與jdk版本以及各類插件有對(duì)應(yīng)關(guān)系,所以普通安裝較為麻煩,本文主要介紹了Docker安裝Jenkins的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01