提要:
这里完成一个完整的docker项目,并且将其推送到Docker-hub中。
docker知识5:在WSL2的ubuntu20.04环境安装使用docker
第一步 登录hub并建立仓库
如果docker-hub的注册名称为china,建立仓库名称为china/tianjin,那么hub上将会有一个空的image,名称为china/tianjin.
在客户端准备:将一个container转化成一个image,中心代码:
docker commit name-container china/tianjin
注意:这里image名称必须与hub上一样,才能推送到hub上去。
推送上面的image/tianjin到hub上去。
docker push china/tianjin
登录hub查看,将出现一个镜像。
第二步 准备一个完整项目在win10系统运行
在win10下面,有开发好的基于Mnist的KNN分类项目。该项目存放在e盘(win10的)。
进入wsl2的ubuntu,键入 cd /mnt/e && ls
huatec@LAPTOP-J5TGQHQH:~$ cd /mnt/e && ls
'$RECYCLE.BIN' 'System Volume Information' machine_learn
huatec@LAPTOP-J5TGQHQH:/mnt/e$
可以看到 machine_learn,将其导入ubuntu:
sudo cp /mnt/e/machine_learn -r /home/usr
查看倒入的效果:
cd /home/usr && tree machine_learn
结果是:
machine_learn
└── knn
├── KNN.py
└── MNIST_data
├── t10k-images-idx3-ubyte.gz
├── t10k-labels-idx1-ubyte.gz
├── train-images-idx3-ubyte.gz
└── train-labels-idx1-ubyte.gz
此时,此项目已经导入ubuntu宿主机内。
第三步 将项目从宿主机导入容器
启动docker,从ubuntu宿主机执行:
sudo service docker start
sudo docker pull tensorflow/tensorflow 【这里tensorflow/tensorflow是个官方镜像名称】
启动一个容器:
sudo docker run -it -p 8000:8000 --name mytensor tensorflow/tensorflow
sudo docker ps 得到containerID 62e188e9e750
将宿主机项目导进此容器
sudo docker cp /home/huaw/machine_learn 62e188e9e750:/home
进入容器,查看导入项目
sudo docker exec -it container-ID /bin/bash [ container-ID由sudo docker ps指令得到62e188e9e750]
第四步 如何从宿主机运行container中的内容
在container的路径/home/mycont 下有:
KNN.py python程序
MNIST_data 数据目录
在宿主机执行,或写成sh脚本:
#!/bin/bash
DOCKER_ID=62f3f40ab240
sudo docker exec -it 62e188e9e750 /bin/bash -c 'cd /home && python KNN.py'
可以实现从宿主机启动container内部的训练。
sudo docker run tensorflow/tensorflow:0.12.1-gpu python train.py
直接进行训练。
第五步 如何将容器生成image
这里用到前面注册的china/tianjin账号。
sudo docker commit 62e188e9e750 china/tianjin
sudo docker images
可以看到本地多了一个镜像china/tianjin
第六步 将镜像上传到HUB上
sudo docker push china/tianjin
再次进入docker-hub网页,发现Repositories中多出一个镜像。至此大功告成!