docker加虚拟机,简直就是坑中埋雷~~~ 让我抱怨一下。
我们开始进入主题。
我的系统是ubuntu20 安装在虚拟机里。这个我就不再阐述过多了。大家都会。docker安装过程我也不多说了,这个资料很多。
那么我们直接进入主题。首先在docker中拉取tensorflow:2.2.0-jupyter镜像
第一步我们打开 Terminal
1. 启动docker
sudo service docker start
2.查看dokcer 镜像列表
sudo service docker image ls #你会发现列表里啥也没有,可能有个你测试docker用的hello word 镜像
3.拉取tensorflow:2.2.0-jupyter镜像
sudo docker run -it -p 8888:8888 tensorflow/tensorflow:2.2.0-jupyter
在这里就是拉取成功了。
然后按住 ctrl + c 退出来。
4.从新查docker 镜像
sudo docker image ls
你会发现 镜像列表里出现了 tensorflow/tensorflow 这个镜像名字。
1.然后我们查看一下开启的容器
sudo docker ps
这个 382ce1683576 就是刚才我们docker run 过的容器。现在是开启状态。
现在我们关闭它。再删除它。到这里别蒙圈,全是经验之谈。
想玩深度学习,那就要相信经验值。
关闭ID: 382ce1683576 的容器 并删除它
sudo docker stop 382ce1683576 #关闭
sudo docker container rm 382ce1683576 #删除
#重新查看容器
sudo docker ps #发现啥也没有了。OK
我们首先在本机上安装jupyter lab
第一步
在本机位置新建一个文件夹(work)
cd work #进入work
mkdir config #再建一个文件夹
cd config #进入config
touch config.json #建立一个.json格式的文件
{
"NotebookApp":{
"ip":"*",
"port":8888,
"password":"",
"open_browser":false,
"token":"",
"allow_root":true
}
}
用vim打开 config.json
把上面的代码复制进去,保存。这样我们的启动文件就完成了。
第二步
1.在docker 中开始创建挂载当地文件的容器
#bnug是我的本地名
bnug@bnug:~$ sudo docker run -itd -p 8888:8888 -v /home/bnug/work:/work tensoflow/tensorflow:2.2.0-jupyter bash
8888:8888 这个是端口号,自己用虚拟机做服务器的话,无所谓
直接查看容器
sudo docker ps
看到一个ID 在运行
2.然后通过该容器ID进入该容器
sudo docker exec -it ID号 bash
这样我们就进入了该tensorflow2.0-jupyter映射的容器中
3.在容器中安装 jupyterlab
pip3 install jupyterlab
4.进入 work文件
这里你会看到 work文件下,有一个config文件夹。能cd进入work文件下,就证明该容器挂载本地文件成功了。
那个 .jupyter不用管。是我专门拷贝的。没用。
5.开启jupyter lab
在work 文件下开启
这里看到命令行里有config.json 了没。它就相当于一个启动前的预读文件。里面包含了IP,端口号,密码,token, 等等一些命令。有了这个config.json后我们就不用每次启动时都要在jupyter lab 后面敲一串 端口号,IP 什么的。省了很多事情。
6.开启后的模式:
看到我画红圈的位置了没,复制这个到网页地址中出现网页打不开 - - 这真是一个奇怪的毛病。
解决办法是 把前面容器的ID 更换成 docker IP 后面的端口号不变。例如:
http:// docker IP :8888/ #把这个地址复制进网页就能打开jupyter lab了
我们查看一下docker IP
ifconfig