Docker入门
Posted 丹心明月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker入门相关的知识,希望对你有一定的参考价值。
关于Docker
隔离和资源限定都是LXC(Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。)做的,安全是用GRSec,镜像文件依赖于AUFS。
Docker也可以被称为轻量级虚拟化技术。
Docker是可移植的,可以在各种主流Linux发布版或Windows(需要使用boot2docker或者虚拟机)使用。Docker可以build once,run anywhere。
Docker是一个能够把开发的应用程序自动部署到容器的开源引擎。
Docker组件
-
Docker客户端和服务器,也称为Docker引擎;
-
Docker镜像;
-
registry;
-
Docker容器;
Docker客户端和服务器
Docker是一个C/S架构的程序。Docker客户端只需向Docker服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。Docker守护进程有时也称为Docker引擎。Docker提供了一个命令行工具docker以及一整套RESTful API来与守护进程交互。
Docker镜像
镜像是构建Docker世界的基石。用户基于镜像来运行自己的容器。
Docker镜像是由文件系统叠加而成。最低端是一个引导文件系统,即bootfs。Docker镜像的第二层是root文件系统rootfs,它位于引导文件系统之上。
为了区分同一个仓库中的不同镜像,Docker提供了标签(tag)功能。
构建镜像
构建Docker镜像有两种方式:
-
使用docker commit命令;
-
使用docker build命令和Dockerfile文件;--推荐
Dockerfile使用基本的基于DSL(domain specific language)语法的指令来构建一个Docker镜像。使用#注释。
每个Dockerfile的第一条指令必须是FROM。每条指令, 都必须为大写。
构建新镜像:docker build
Registry
Docker用registry来保存用户构建的镜像。registry分为公共和私有两种。Docker公司运营的公共registry叫做docker hub。
http://registry.hub.docker.com
容器
Docker可以帮用户构建和部署容器,用户只需要把自己的应用程序或服务打包放进容器即可。容器是基于镜像启动起来的额,容器中可以运行一个或多个进程。
镜像是Docker生命周期中的构建或打包阶段,而容器则是启动或执行阶段。
容器运行分为交互式运行的容器(interactive container)和守护式容器(daemonized container)。
Docker资源
-
Docker官网:http://docker.com
-
Docker HUB:http://hub.docker.com
-
Docker官方博客:http://blog.docker.com
-
Docker官方文档:http://docs.docker.com
-
Docker快速入门指南:http://www.docker.com/tryit
-
Docker的GitHub源码:https://github.com/docker/docker
-
Docker Forge:收集了各种Docker工具、组件和服务。 http://github.com/dockerforge
安装Docker
安装Docker的先决条件
-
CPU架构需要为64位(x86_64和amd64);
-
运行Linux3.8或更高版本内核;
-
内核必须支持一种适合的存储驱动,例如:Device Manager、AUFS、vfs、btrfs、ZFS,默认通常为Device Mapper或AUFS。
-
内核必须支持并开启cgroup和namespace功能;
在RHEL7安装Docker
检查前提条件
-
内核版本:uname -a检查,3.8或更高版本;
-
检查Device Mapper:ls -l /sys/class/misc/device-mapper或者grep device-mapper /proc/devices
-
安装Device Mapper:yum install -y device-mapper然后modprobe dm_mod
-
安装Docker
-
下载安装包:wget http://get.docker.com/builds/Linux/x86_64/docker-latest.tgz
-
解压:tar -xvf docker-latest.tgz
-
将文件移动到系统执行路径下: cp docker/* /usr/bin
-
启动docker:dockerd &
-
查看docker是否启动正常:docker run hello-world #看到Hello from Docker!为正常。
Docker入门
查看Docker是否正常工作:docker info|inspect
运行容器:docker run 示例:docker run -i -t ubuntu /bin/bash
查看当前系统中的容器列表(包含正在运行及停止):docker ps -a
Docker容器命名:Docker会为创建的每一个容器自动生成一个随机的名称。为容器指定名称,使用--name选项。docker run --name name_cont -i -t ubuntu /bin/bash
删除容器: docker rm
删除镜像:docker rmi
启动容器:docker start
附加/连接到容器:docker attach
创建守护式容器:docker run --name daemon_dave -d ubuntu /bin/sh -c "while true;do echo hello world; sleep 1; done"
获取容器日志:docker logs [-f] / docker logs --tail 10 daemon_dave /docker logs --tail 0 -f daemon_dave /docker logs -ft daemon_dave(日志中打印时间)
Docker日志驱动:通过--log-dirver选项控制Docker守护进程和容器所用的日志驱动。可以在启动Docker守护进程或者执行docker run命令时使用这个选项。可用选项值有json-file、syslog、none。
查看容器内的进程:docker top
查看docker统计信息:docker stats
在容器内运行进程:docker exec
可以在容器内运行的进程有两种类型:后台任务(-d)和交互式任务(-t -i)。
停止守护式容器:docker stop
自动重启容器:docker run --restart=always|[on-failure:5]
列出可用镜像:docker images
拉取镜像到本地:docker pull
将本地镜像推送到Docker Hub:docker push
查找镜像:docker search
登录到Docker Hub:docker login --liming185216/dandan@521;用户个人认证信息保存到$HOME/.docker/config.json
退出register服务:docker logout
查看容器的端口映射情况:docker port contener_name port
查看端口映射情况:docker ps -l
容器与宿主机之间复制文件:docker cp
列出当前系统中的所有网络:docker network ls
还可以通过浏览/var/lib/docker目录深入了解docker的工作原理,该目录存放着Docker镜像、容器以及容器的配置。
其他
Fleet
集群管理工具;
etcd
高可用性的键值数据库,用于共享配置和服务发现。
Kubernetes
Google开源的容器集群管理工具。
以上是关于Docker入门的主要内容,如果未能解决你的问题,请参考以下文章