Docker

161 阅读3分钟

docker介绍

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。

Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信

docker安装(ubuntu 腾讯云服务器)

docker 要求ubuntu 系统的内核版本
通过 uname -r 查看你的内核版本
获取最新版的Docker安装包
wget -qO- https://get.docker.com/ | sh
输入当前用户名和密码就可以下载并安装docker以及依赖包 需要root用户登录 非root用户需要设置
sudo service docker start 启动docker后台服务
docker run hello-world 运行hello-world 如本地没有images会从docker hub下载

例子hello world

docker run ubuntu:15.10 /bin/echo "Hello world"
命令解释:
docker: Docker 的二进制执行文件。
run:与前面的 docker 组合来运行一个容器。
ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
/bin/echo "Hello world": 在启动的容器里执行的命令

docker run -i -t ubuntu:15.10 /bin/bash
命令解释:
-t:在新容器内指定一个伪终端或终端。 -i:允许你对容器内的标准输入 (STDIN) 进行交互 此时会进入一个ubuntu15.10系统的容器 cat /proc/version 查看当前系统版本信息 可以用 exit 或者 ctrl + d 退出当前容器 docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" 以进程方式运行一个容器 执行后会打印出一个字符串 为容器id

可以用 docker ps 查看运行的容器 用 docker log <NAMES/CONTAINER ID> 查看容器内的标准输出

docker命令

docker 查看docker所有的命令
docker command --help 了解docker command 的用法
docker pull <images> 拉取镜像文件
docker logs -f <containerid> -f:让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。
docker stop <containerid/names> 停止web应用容器
docker start <containerid/names> 开启容器
docker rm <containerid/names 移除容器
docker images 列出本机上的镜像
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
docker search <names> 搜索镜像
创建镜像:
1.从已经创建的容器中更新镜像,并且提交这个镜像
2.使用 Dockerfile 指令来创建一个新的镜像
docker run -t -i ubuntu:15.10 /bin/bash 创建一个容器
apt-get update 更新
exit 退出容器
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
命令解释:
-m:提交的描述信息
-a:指定镜像作者
e218edb10161:容器ID
runoob/ubuntu:v2:指定要创建的目标镜像名
然后就可以启动新镜像了
docker run -t -i runoob/ubuntu:v2 /bin/bash
docker tag <containerid> ubuntu:v02 为镜像添加标签

例子 运行web项目

docker pull training/webapp 载入镜像
docker run -d -P training/webapp python app.py
命令解释:
-d: 让容器在后台运行
-P: 将容器内部使用的网络端口映射到我们使用的主机上(此为大写)

Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上

docker run -d -p 5000:5000 training/webapp python app.py
容器内部的 5000 端口映射到我们本地主机的 5000 端口上 (此-p为小写)


docker toolbox教程
docker toolbox