1. 程式人生 > >docker在mac上配置並建立後臺容器

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, 我使用了沒法在後臺保持執行,可能跟映象也有關係

7ssh遠端登入該容器

# ssh [email protected] -p 32776

或者使用 docker exec 

如   docker exec -it a3b9849b3929  /bin/bash

需要注意的是mac的docker是run在虛擬機器裡的

所以使用ssh遠端登入的話,要麼將虛擬機器的埠映射回來,要麼用docker-machine ssh default 進入虛擬機器然後ssh

而docker exec的話可以不用這樣,在本地也可以使用