1.介绍
Docker是一个开源的应用容器引擎,基于Go 语言并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的app),更重要的是容器性能开销极低。
2.架构和基本概念
Docker镜像(Images):Docker 镜像是用于创建 Docker 容器的模板
Docker容器(Container):容器是独立运行的一个或一组应用
Docker客户端(Client):Docker客户端通过命令行或者其他工具使用Docker API与Docker的守护进程通讯
Docker主机(Host):一个物理或者虚拟的机器用于执行Docker守护进程和容器
Docker仓库(Registry):Docker仓库用来保存镜像,可以理解为代码控制中的代码仓库
Docker Machine:简化Docker安装的命令行工具,通过简单的命令就可以在相应的平台上安装Docker
3.centos docker安装(要求centos系统内核版本高于3.10)
3.1 安装必要系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
3.2 添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.3 更新yum缓存
yum makecache fast
3.4 安装docker-ce
yum -y install docker-ce
3.5 启动Docker后台服务
systemctl start docker
3.6 测试运行 hello-world
docker run hello-world
3.7 删除docker-ce
yum remove docker-ce
rm -rf /var/lib/docker
4.Docker Hello world
4.1 docker run ubuntu:15.10 /bin/echo "Hello world"
docker 二进制执行文件
run 与前面docker组合来运行一个容器
ubuntu:15.10 指定要运行的镜像
/bin/echo "Hello world" 在启动的容器中执行的命令
4.2 docker run -i -t ubuntu:15.10 /bin/bash
-i 允许对容器内标准输入进行交互
-t 在新的容器内指定一个伪终端
4.3 退出容器
CTRL+D
4.4 其他命令
# 后台模式启动容器(输出的是容器ID)
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
# 查看在运行的容器
docker ps
# 查看容器日志
docker logs 容器ID
# 停止容器
docker stop 容器ID
5.Docker容器使用(运行一个web应用)
docker pull training/webapp
docker run -d -P training/webapp python app.py(-P内部容器的端口映射到本机上)
访问web应用:http://182.92.234.232:32768/
docker run -d -p 5000:5000 training/webapp python app.py
访问web应用:http://182.92.234.232:5000/
# 查看端口
docker port cd31a1f471c2
# 查看日志(类似 tail -f)
docker logs -f cd31a1f471c2
# 查看容器运行的进程
docker top cd31a1f471c2
# 查看docker配置信息
docker inspect cd31a1f471c2
# 重启容器
docker start cd31a1f471c2
# 查看最后一次启动的容器
docker ps -l
# 移除容器
docker rm cd31a1f471c2
6.Docker镜像使用
# 列出镜像列表
docker images
REPOSITORY 表示镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像ID
CREATED 镜像创建时间
SIZE 镜像大小
# 获取一个新镜像
docker pull ubuntu:13.10
# 查找镜像
docker search httpd
7.Docker镜像更新
docker run -t -i ubuntu:15.10 /bin/bash
mkdir version.cfg
docker commit -m="has update." -a="jack" 3b4cbbfe41a5 runoob/ubuntu:v2(提交更新)
8.Docker镜像构建
touch Dockerfile
FROM centos:6.7
MAINTAINER Fisher "18201225281@163.com"
RUN mkdir test
docker build -t jack/centos:6.7 .
-t 指定创建目标镜像名
. 指定Dockerfile路径
docker run -t -i jack/centos:6.7 /bin/bash
# 设置镜像标签
docker tag 2b510c0b26d7 jack/centos:dev
9.Docker安装tomcat
docker pull tomcat
docker images tomcat(查询本地的nginx)
docker run --name tomcat -p 8080:8080 -v $PWD/webapps:/usr/local/tomcat/webapps -d tomcat
参考文档地址:http://www.runoob.com/docker/centos-docker-install.html