镜像:
相当于是一个vm的虚拟机,举个栗子,这个虚拟机安装了python,mysql,django,那么我们可以叫这个镜像叫python-web镜像。
容器:
容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。
Docker容器(Container)类似于一个轻量级的沙箱子(因为Docker是基于Linux内核的虚拟技术,所以消耗资源十分少),Docker利用容器来运行和隔离应用。
仓库:
Docker仓库(Repository)类似与代码仓库,是Docker集中存放镜像文件的场所。
目前,最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括Docker Pool等,可以提供稳定的国内访问。如果用户不希望公开分享自己的镜像文件,Docker也支持用户在本地网络内创建一个只能自己访问的私有仓库。
下载:
windows 取官网下载安装即可,与vm不兼容。
centos 分yum安装和脚本安装,yum比较复杂一点,就直接sh安装简单干脆
$ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun
启动docker:
$ sudo systemctl enable docker $ sudo systemctl start docker
测试:
$ docker run hello-world
基础命令:
镜像:
获取镜像
$ docker pull dl.dockerpool.com:5000/ubuntu:14.04 # docker pull centos:7
dl.dockerpool.com为注册服务器,5000为端口号,ubuntu为仓库名称,14.04是镜像也是版本号
列出镜像:
$ docker image ls # docker image ls centos:7
删除镜像:
$ docker image rm cnetos:7
容器:
启动容器:
$ docker run -it centos:7 bash $ docker run centos:7 echo "hello world"
-t
选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i
则让容器的标准输入保持打开
列出容器:
$ docker container ls # 正在运行中的容器 $ docker container ls -a # 所有,包括已经结束的容器
重新启动已终止的容器
$ docker container start
守护态运行
$ docker run -d centos:7
终止容器
$ docker container stop
导出、导入容器
$ docker export 7691a814370e > centos.tar $ docker import centos.tar zn/centos:7
清除所有处于终止状态的容器:
$ docker container prune
外部访问容器:
容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P
或 -p
参数来指定端口映射。
$ docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py
挂载:
$ docker run -it -v /d/project:/root/project centos /bin/bash
之后在进行
$ cp -r ./project/ ./project2/