前言
之前的Scrapy要搬家了,搬到外面的主機上。
如果看過前面幾篇的應該知道,我已經把那個scrapy改的跟本來的樣子差很多了。
而且我也沒有用k8s管理,感覺這個匯入匯出用k8s應該會比較好做?
畢竟是管理docker用的工具。先來試試傳統的方式吧。
正文
1.匯出images
首先將本來的檔案匯出,
這邊使用的是export的方式。另外還有一種是save的語法。
兩者的差異可參考:[Docker] 比較 save, export 對於映像檔操作差異
docker export scrapydIII > scrapyd.tar
我是用xshell本身自帶的xftp直接下載下來的。
當初建立的時候,有mapping一個外部資料夾存放資料,這個也需要一併下載(Fig.1)。
(Fig.1)
2.匯入images
cat scrapyd.tar | docker import – scrapyd
匯入完成後,利用
docker images
看images 列表
3.建立容器
剛剛匯入了images,現在要建立容器了。
這邊建立的方式會有些不同。
一開始先以平常建立容器的方式去執行,
docker run -d --name=scrapydIII -p 6800:6800 -v ~/scrapyd:/var/lib/scrapyd
rockyuan/scrapyd
會跳出錯誤
docker: Error response from daemon: No command specified.
因為必須加入command的指令才可以。
例如,我本來的container的command是scrapyd(Fig.2)
就下
docker run -d --name=scrapyd -p 6800:6800 -v ~/scrapyd:/var/lib/scrapyd
scrapyd scrapyd
最後面的scrapyd是command
倒數第二個的scrapyd是images的檔案名稱
(Fig.2)
如果command太長的話(Fig.3),就必須額外下指令去取得(ref.See full command of running/stopped container in Docker)
sudo docker ps --no-trunc
(Fig.3)
4.現在開始要載入scrapydweb。
這邊就碰到了一堆問題,容器跟容器間的互連、如何確認ip有沒有通...
確認網站有沒有活著,可以使用
curl -Is https://tw.yahoo.com | head -1
看他是否回傳資料就知道了(ref.Check a Website Availability from the Linux Command Line)
然後容器間的互連,應該是使用 --link的方式(之前連mongodb也有試過),
但現在還在Try...
撞牆篇
解決篇
docker run -d --name=scrapyd -p 5000:5000 -p 27020:27017 -v ~/scrapyd:/var/lib/scrapyd
scrapyd scrapyd
docker run --name scrapydweb --net=container:scrapyd \
-v
~/scrapydweb_data:/usr/local/lib/python3.6/site-packages/scrapydweb/data \
-v ~/scrapydweb_data/app:/app \
-v /etc/timezone:/etc/timezone \
-d ryanvin/scrapydweb:latest
docker run -d --net=container:scrapyd --name mongodb -v ~/mongo:/data/db -e MONGO_INITDB_ROOT_USERNAME=321 -e MONGO_INITDB_ROOT_PASSWORD=123 mongo
ref.
0 意見:
張貼留言