Docker核心概念
- 镜像(image) Docker 镜像(Image)就是一个只读的模板。例如:一个镜像可以包含一个完整的操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
- 仓库(repository) 仓库(Repository)是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
- 仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括 时速云 、网易云 等,可以提供大陆用户更稳定快速的访问。当然,用户也可以在本地网络内创建一个私有仓库。
- 当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。
- Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务。
- 容器(container) Docker 利用容器(Container)来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
- 容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。
常用命令
显示版本号
docker --versions
显示镜像
docker images
构建镜像
sudo docker build -t 'myflask' .
保存镜像
docker save -o /home/dyufei/tensorflow.tar tensorflow/tensorflow
或者 docker save tensorflow/tensorflow > /home/dyufei/tensorflow.tar
加载镜像
docker load -i 'c:/123/tensorflow.tar’
运行容器
sudo docker run -it --rm -v /Users/liuyue/wodfan/work/myflask:/Project/myflask -p 5000:5000 myflask
docker run -it --rm -p 5000:5000 -v /Users/liuyue/wodfan/work/myflask:/Project/myflask myflask
后台运行
sudo docker run -d -p 5000:5000 --name test-flask-1 myflask
登录系统 镜像编号
docker run -ti 6866
docker run -it centos /bin/bash
进入镜像并且开启终端
docker exec -it mynginx /bin/bash
#如果出现任何关于node依赖的问题导致服务无法启动,执行npm install无法解决的,则安装rimraf,然后进入项目目录下,执行rimraf node_modules 删除后,重新执行 npm install 安装依赖
删除node_modules npm install rimraf -g rimraf node_modules ```
做最野的狼