docker在mac上配置並建立後臺容器
1. 首先需要去官網上下載並安裝docker
https://docs.docker.com/mac/step_one/
步驟很簡單。
2. 啟動docker
啟動docker有多種方法,可以在launchpad裡用quickstart terminal。
也可以在命令列裡使用
eval $(docker-machine env default)
從而將docker啟動起來
3. 下載映象
這裡我為了跑tensorflow用的 tensorflow官方教程中提供的一個映象。
docker run -it b.gcr.io/tensorflow/tensorflow
如果翻牆了,用以上命令就可以自動下載映象並存在本地
但是注意,這裡面的映象環境很不全,是ubuntu系統。
如果翻不了牆 就只好下載一個了 http://7xlgth.com1.z0.glb.clouddn.com/tensorflow.tar
然後使用
docker load < ~/Downloads/tensorflow.tar 進行匯入
4. 使用映象
docker run -it b.gcr.io/tensorflow/tensorflow 即可進入映象
但是exit再進入,映象就會恢復原貌, 所以進行改動如果想儲存就必須使用docker commit
如docker commit d54a97f5ccf1 b.gcr.io/tensorflow/tensorflow
中間的16進位制字串 是容器ID
可以用docker ps 看到
5. 建立後臺執行的映象
如果光使用docker run -it 這樣的方式執行映象,會有一個問題
我們要是一不小心exit了,工作就白做了,每次退出前都得去commit也挺麻煩
所以需要建立一個後臺一直執行的映象
首先需要給自己的映象裝好ssh
1)、啟動一個docker容器
# docker run -t -i b.gcr.io/tensorflow/tensorflow /bin/bash
2)、然後在容器裡,安裝openssh-server openssh-client
有的映象裡的apt-get很老,所以我們先升級apt-get
# apt-get update
# apt-get install openssh-server openssh-client
3)、完成之後,修改root密碼
# passwd
4)、退出容器,並儲存以上修改
# docker commit 3ea7a99a0025 mytensorflow
5
檢視容器id
# docker ps -a
檢視映象列表
# docker images
6、用剛儲存的映象,後臺啟動一個新的容器
docker run --name [image-name] -i -t -p 32776:22 [image-id]
例: # docker run -d -p 32776:22 mytensorflow /etc/init.d/ssh start -D
注意/etc/init.d/ssh start -D , 是保證機器能執行在後臺的一個命令
看到網上有人使用了/usr/sbin/sshd -D, 我使用了沒法在後臺保持執行,可能跟映象也有關係
7、ssh遠端登入該容器
# ssh [email protected] -p 32776
或者使用 docker exec
如 docker exec -it a3b9849b3929 /bin/bash
需要注意的是mac的docker是run在虛擬機器裡的
所以使用ssh遠端登入的話,要麼將虛擬機器的埠映射回來,要麼用docker-machine ssh default 進入虛擬機器然後ssh
而docker exec的話可以不用這樣,在本地也可以使用