内容简介:docker容器技术现在火的一塌糊涂,最近的工作刚好和这部分内容有交集,就动手搞了一下,这里记录下Docker使用的相关流程。由于我用的是mac,docker是基于linux系统,因此需要下载
docker容器技术现在火的一塌糊涂,最近的工作刚好和这部分内容有交集,就动手搞了一下,这里记录下 Docker 使用的相关流程。
安装Docker
由于我用的是mac,docker是基于 linux 系统,因此需要下载 docker desktop ,是一个mac下的app,下载后放入应用程序中就可以运行。
运行起来会后在顶部的状态栏中常驻一个小鲸鱼的小图标,点击这个图标可以进行重启,退出等操作。
这iterm2中输入docker version,能看到docker相关信息就说明docker安装成功了,可以开始你的docker之旅吧。
自定义镜像是由基础镜像和自定义环境构成。这个例子使用的基础镜像是centos,自定义环境使用 tensorflow的模型例子 https://github.com/tensorflow/models
启动一个基础镜像
docker run -it --name centos centos:latest /bin/bash
docker run命令是启动一个docker容器
-it是指交互式模式
—name是定义容器名称
centos:latest是具体的镜像名称及镜像标签,默认会先从本地的docker镜像库,本地镜像库不存在则会从docker hub上寻找
/bin/bash是交互模式运行的命令
运行完这段代码后会下载相关镜像并进入容器内部,运行/bin/bash
使用exit可以退出容器,使用-it交互模型启动的容器,退出后容器会变成退出状态。
使用docker ps可以查看正在运行的容器。由于刚刚的容器已经退出了,所以此时的列表为空。
可以使用docker ps -a查看所有的容器。
可以看到刚才运行的容器也显示出来了,状态是退出。
使用docker images可以显示本地docker仓库中的所有镜像。
由于tensorflow model需要使用juppyter来查看运行效果,因此,还需要在docker容器运行时将jupyter端口映射到外部,此外,通常还需要将宿主机的硬盘挂载到容器中,这样容器释放后数据还是会在宿主机的硬盘上,同时也可以多个docker共享数据。
让我们先删除之前的这个容器。
docker rm <容器ID>
rm后面的参数是对应的容器ID,容器ID是通过docker ps -a获得的。
如果要将相关的镜像也删除则需要使用
docker image rm <镜像ID>
让我们再重启创建一个docker容器,这次需要将jupyter的端口映射出来,同时要讲一个宿主机的目录挂载到docker中。
docker run -it --name centos_jupyter -v /Users/cloga/Documents/models/research/object_detection:/mnt -p 9999:8888 centos:latest /bin/bash
-v 是磁盘挂载,格式为宿主机的目录:docker目录
-p 是端口映射,格式为宿主机的端口:docker端口
查看一下磁盘挂载是否成功。
mnt目录存在并且内容也是宿主机上的文件。说明磁盘挂载成功了。
配置自定义的环境
要验证端口映射是不是成功需要在docker容器中安装一个jupyter并启动。jupyter notebook的安装可以参考 服务器脚本开发效率神器jupyter notebook 。
yum install -y bzip2 curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh conda install jupyter
如果你退出了刚刚的docker容器,导致容器退出,不用怕,只需要docker start,重启启动docker即可。
dokcer ps命令可以显示容器相关的信息,包括使用哪个镜像创建,创建时间,启动的时候的命令以及端口映射等。
这种情况下,或者使用docker run -d时docker是在后台运行,此时想要进入容器可以使用如下命令:
docker exec -it <容器名称> /bin/bash
跑tensorflow的物体识别的demo
启动jupyter notebook,记录下token
jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root
在浏览器打开localhost:9999,输入token后
说明jupyter启动成功,并且docker内的8888端口也成功映射到宿主机的9999端口
在后台运行jupyter
nohup jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root&
安装git,并把tensorflow models下载到本地
yum install git git clone https://github.com/tensorflow/models.git
将容器导出为容器文件
将自定义容器环境导入为docker镜像
用自定义镜像创建一个容器
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 【自定义】通过Dockerfile创建httpd镜像
- KVM镜像制作及挂载镜像文件
- 查看Docker镜像仓库中镜像的所有标签
- Vagrant 使用国内镜像安装插件和 box 镜像
- 不要轻易使用 Alpine 镜像来构建 Docker 镜像,有坑!
- Harbor 1.7 发布,在线 GC、镜像历史、镜像复制
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。