docker学习笔记
一、概念
Docker 镜像(Images)
Docker 镜像是用于创建 Docker 容器的模板。
Docker 容器(Container)
容器是独立运行的一个或一组应用。 是镜像的实例,镜像-容器关系类似于类-对象
Docker 客户端(Client)
Docker 客户端通过命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 与 Docker 的守护进程通信。
Docker 主机(Host)
一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
Docker 仓库(Registry)
Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。
Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。
Docker Machine
Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。
二、安装
$ brew cask install docker
三、使用
(1)基本
1.查看版本
$ docker --version
2.Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果
$ docker run ubuntu:15.10 /bin/echo "Hello world"
3.让docker运行的容器实现"对话"的能力
- -t:在新容器内指定一个伪终端或终端。
- -i:允许你对容器内的标准输入 (STDIN) 进行交互。
$ docker run -i -t ubuntu:15.10 /bin/bash
4.以进程方式运行的容器 返回容器ID 容器里面不断输入hello word
$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
5.查看docker中的容器ID
$ docker ps
6.根据容器ID查看容器内的标准输出 可以使用-f 像使用 tail -f 一样来输出容器内部的标准输出
$ docker logs a0ef3a20b338
7.停止容器
$ docker stop a0ef3a20b338
8. 查看容器内部运行的进程
$ docker top a0ef3a20b338
9. 查看 Docker 的底层信息
$ docker inspect a0ef3a20b338
10.删除容器
$ docker rm a0ef3a20b338
(2)运行Web应用
在docker容器中运行一个 Python Flask 应用来运行一个web应用
1.pull镜像
- -d:让容器在后台运行。
- -P:将容器内部使用的网络端口映射到我们使用的主机上。
runoob@runoob:~# docker pull training/webapp # 载入镜像 runoob@runoob:~# docker run -d -P training/webapp python app.py
2.用docker ps查看容器ID 可以看到Port中 0.0.0.0:32768->5000/tcp 字样 本机32768映射到容器中的5000端口,访问 http://localhost:32768/ 可看到Hello world!
3.通过 -p 参数来设置不一样的端口
$ docker run -d -p 5000:5000 training/webapp python app.py