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镜像有两种方式:

  1. 使用docker commit命令;

  2. 使用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入门的主要内容,如果未能解决你的问题,请参考以下文章

Docker 入门

Docker入门教程Docker Registry

Docker部署Rstudio Server【一】:Docker入门

Docker Compose 入门(V3)

Docker入门教程介绍

Docker入门教程命令