# <center>交接文件-Fubon環境佈署</center> 參考連結 - [docker image 輸出與匯入(tar)](https://blog.hinablue.me/docker-bi-jiao-save-export-dui-yu-ying-xiang-dang-cao-zuo-chai-yi/) - [docker container to image to dockerhub](https://www.youtube.com/watch?v=EIHY_CY5J0k) ## 0. 目標 把自己電腦做好的image移至公司vm中並快速啟動container ## 1. 環境要求 - 帶有docker自己的電腦 - 帶有docker的公司桌機 - 帶有docker的虛擬機/測試機 ## 2. 環境佈署步驟 製作docker container --> 製作成image並push到docker hub --> 桌機docker pull <br> --> 桌機輸出<image name>.tar(docker save) --> 傳送至虛擬機 --> 虛擬機docker import ### 2.1 container製作成image並push到docker hub - container 2 tar ``` $ docker <container name> <tar name>.tar ``` - tar 2 image ``` $ cat <tar name>.tar | docker import - local/<tar name> ``` - 檢查image是否可以成功啟動容器 ``` docker run -t -i --name=<container name> <image name> bin/bash ``` 這裡已經把先前做完的contanier輸出成image並取名叫做 local/<tar name> - 上傳至docker hub ``` docker login # 登入dockerhub docker tag <image name>:<image tag> <new image name> docker images # 檢查image ``` ### 2.2 從公司桌機下載 image 並傳送至VM (桌機需要有docker) - 下載image ``` docker login # 登入dockerhub docker pull ouob/ouob # 下載image ``` - save image 並製作成tar file ``` docker save ouob/ouob > <tar name>.tar ``` - 傳送tar至vm ``` scp /path/to/<tarname>.tar fmgdm@172.16.240.157:./ # 移至VM su - root # 進入root cp /home/fmgdm/<tarname>.tar /root/docker_image_tar # 移動檔案至root ``` ### 2.3 載入tar檔案 ``` # cd 至 tar 所在的路徑並load image docker load < <tarname>.tar ``` ### 2.4 run container ``` docker run -t -i --name=<container name> <image name> bin/bash ``` 執行完這行後,即可進入container中檢查環境是否佈署成功 ``` cd torch_test # 進入資料夾 conda activate jimmy # 啟動虛擬環境 python main.py # 執行python 腳本 ``` ## 3. 測試成功範例環境 ### 3.1 測試步驟 1. 在window10 自己的筆電下達docker pull 後docker save image並輸出成tar檔案。(模擬已安裝docker的公司window 桌機) 2. 將tar檔案上傳至google雲端硬碟(模擬從桌機window scp 至 linux主機) 3. 在mac作業系統上面手動至雲端硬碟下載(模擬vm 接收檔案) 4. 在mac上docker load tar file (模擬mac啟動tar file) ### 3.2 結果:成功 window 輸出的tar檔案,linux可以執行 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up