Docker入门

#虚拟化# Docker入门

摘要

Docker入门

Docker简介

Docker是一种虚拟化技术,虚拟机大家都知道。
可以理解是一种更轻量级的虚拟机。用过虚拟机都知道一般都有几个G甚至十几个G的大小。但是Docker一般就几百M。而且因为基于Linux内核虚拟,占用极少的资源。另外还有版本管理。
它可以快速准备好你所需要的部署环境,而且特别轻量级,所以是运维人员的好帮手。

安装Docker

Docker就是个软件,当然是先安装,然后使用一系列的命令对齐操作。
安装最新的docker版本
wget -qO- https://get.docker.com/ | sh

Docker中重要的概念

image 镜像,就是模板,从镜像创建一个一个的实例,每一个实例就是一个容器。理解成xp光盘装了一个一个的xp系统。每个系统都一模一样。
dockerhub 提供很多镜像,我们可以通过命令下载来用。
https://registry.hub.docker.com/
通过镜像创建的容器可以启动,销毁,导出,加载。后台运行,附加后台运行的容器。
进入容器后就是进入了一个完整的虚拟环境。
外部访问这个虚拟环境一般通过端口映射。
映射端口是在启动容器的时候-p参数指定。

举个栗子

实验环境是 (Ubuntu14.04 x64)
安装Docker
wget -qO- https://get.docker.com/ | sh

启动一个容器
sudo docker run -d -p 80:5000 training/webapp python app.py

通过training/webapp这个镜像启动,这个镜像里有一个Python的app服务,run就是启动一个容器,-d是指后台运行,-p指定映射端口,80是宿主机的端口,5000是容器内部的http服务的端口。

当执行这个命令之后,docker发现本地没有training/webapp这个镜像,它会去dockerhub下载这个镜像,默认获取tag为latest的版本。

更多命令

docker run -d 后台运行
docker run -t -i 进入容器,可以执行命令,对容器大改造一番。然后创建新的镜像。
docker ps 查看正在运行的容器
docker stop name/id 关闭容器
docker logs name/id 查看容器日志
docker logs -f name/id 动态查看容器日志
docker images name/id 查看本地有哪些镜像
docker inspect name/id底层信息```shell
docker run -d 后台运行
docker run -t -i 进入容器,可以执行命令,对容器大改造一番。然后创建新的镜像。
docker ps 查看正在运行的容器
docker stop name/id 关闭容器
docker logs name/id 查看容器日志
docker logs -f name/id 动态查看容器日志
docker images name/id 查看本地有哪些镜像
docker inspect name/id底层信息

//多端口映射,多谢-p即可 前面是宿主机端口,后面是容器内部端口
sudo docker run -d -p 5000:5000 -p 80:3000 training/webapp python app.py

//保存镜像
sudo docker commit -m=”描述” -a=”作者” 短id dockername:tagname

//推送镜像到dacker hub,yourname/newimage要和自己的账号下的名称一致
sudo docker push yourname/newimage

//删除镜像
docker rmi ubuntu/vim:v2

//对容器的操作
rm、stop、start、kill、logs、diff、top、cp、restart、attach

//对镜像设置标签
sudo docker tag 5db5f8471261 ouruser/sinatra:devel

//导出,加载
sudo docker save -o ubuntu_14.04.tar ubuntu:14.04
sudo docker load --input ubuntu_14.04.tar