docker学习笔记

docker学习笔记_第1张图片

一、 docker资源

docker官网:https://www.docker.com/

mac版客户端官网下载链接: https://www.docker.com/docker-mac

docker官方文档: https://docs.docker.com/get-started/part2/#build-the-app

docker hub: https://hub.docker.com/explore/

二、 docker run 命令

docker run -i -t -p 8081:8081 ubuntu:16.04 /bin/bash
  1. 我们通过docker命令行工具,使用 run 命令运行一个指定的镜像
  2. 其中 -i参数将登录会话的标准输入关联到运行镜像的容器上
  3. -t参数为运行镜像创建了一个虚拟tty配合上-i参数,我们就可以以交互的方式直接操作容器内部环境
  4. -p 8081:8081参数为docker容器的内部端口与外部应用端口做了映射设置,让我们可以通过宿主机ip:port的形式直接访问到容器内部端口
  5. ubuntu:16.04是run命令需要运行的指定镜像名:标签,docker的镜像有标签的概念,可以理解为同一镜像的不同版本的区分标识
  6. /bin/bash指定运行镜像的主进程指令为一个/bin/bash。主进程意味着,当该进程结束时docker容器也会被相继销毁。如果读者的需求是需要一个长期备用的 linux 后台环境
  7. 容器正常启动后,进入 docker 容器内部操作内容与普通Linux环境就完全一致了,此处略过
  8. 当我们完成容器内的各种环境准备后我们希望能够复用适才搭建完成的环境,我们通过commit命令将搭好环境的容器构建成为镜像

docker run 命令背后的处理流程:
docker学习笔记_第2张图片

看到这里,大家对docker的操作已经有了一个大致的感性认识了,下一步我们来看下docker的核心概念,深入浅出触类旁通。

三、 docker核心概念

  1. client:docker 客户端,docker引擎的交互操作台,有命令行,可视化界面两种方式。
  2. engine:docker引擎,又名docker daemon,是docker体系中的控制中心。通过RESTFUL API或docker client进行交互,以管理docker容器的创建及运行时控制。
  3. image:docker镜像,一套巧妙的文件系统,记录拼装出需要的运行时环境。
  4. container:docker容器,在libcontainer基础上提供的更高级隔离方案,是一套标准化的docker镜像运行时环境。
  5. registry:docker镜像仓库,与git类似,docker registry有中央仓库和私人仓库,用于管理和存储docker镜像。与maven的repository类似的概念
  6. docker machine:字面翻译过来的意思是docker机器,其目标是负责在多平台上快速安装docker环境。他的存在是有历史背景的,docker engine的运行依赖特定的Linux内核版本,所以在Windows,OS X等非特定Linux内核的平台上运行时,docker machine会作为中间层,基于vm virtualbox提供一个轻量级的Alpine Linux运行环境供docker使用。PS: 在10.10+的OSX环境中,docker for Mac使用系统原生的 Hypervisor.framework 的 hyperkit 进行 Linux 虚拟机模拟而不是 VM VirtualBox。

四、 常用docker命令

  • docker rmi -f nginx
    删除某个镜像, -f强制删除
~ docker rmi -f nginx
Untagged: nginx:latest
Untagged: nginx@sha256:735d07e61490e1237f0b39845efe448d8c269355069d6b9a1db5a434097026eb
Deleted: sha256:b72d63324dbb75b65ed6bb25fed2be975f48c79d93306f52f38e12043c23b774
  • docker images
    查看本地镜像仓库

  • docker inspect ruzun_first_image:cool
    查看镜像的详细信息

  • docker restart
    重启docker

  • docker logs containerId
    查看容器的日志,run的时候最好用–name参数指定容器的名字
    会列出从运行到现在所有的操作,包括操作结果输出

  • docker login
    登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

  • docker logout
    登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

  • docker run --env
    指定环境变量, --env 可以简写成 -e

  • docker run --entrypoint=/bin/bash
    Overwrite the default entrypoint set by the image
    这个ENTRYPOINT可以让container设定默认启动行为,所以当container启动时,你可以执行任何一个二进制可执行程序

  • docker history image
    查看镜像年龄

➜  ~ docker history bruce256/docker:latest
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
e47e4631c67a        2 weeks ago         /bin/bash                                       591MB               ruzun first docker image
dd6f76d9cc90        2 weeks ago         /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B
<missing>           2 weeks ago         /bin/sh -c mkdir -p /run/systemd && echo '...   7B
           2 weeks ago         /bin/sh -c sed -i 's/^#\s*\(deb.*universe\...   2.76kB
<missing>           2 weeks ago         /bin/sh -c rm -rf /var/lib/apt/lists/*          0B
<missing>           2 weeks ago         /bin/sh -c set -xe   && echo '#!/bin/sh' >...   745B
<missing>           2 weeks ago         /bin/sh -c #(nop) ADD file:5b334adf9d9a225...   122MB
  • docker run --name
    指定启动后的容器名字,如果不指定则docker会帮我们取一个名字

  • docker rm -f ubuntu(容器id)
    删除容器,区别于rmi, remove image 的简写

你可能感兴趣的:(运维)