docker学习笔记

docker

一、 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的操作已经有了一个大致的感性认识了,下一步我们来看下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。

容器的本质:特殊的进程,应用只能看到容器里的文件系统、资源、设备;namespace限定了的进程
镜像的本质:.exe可执行文件
K8S的本质:操作系统,容器进程调度

四、 常用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
<missing>           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 的简写

当谈到Docker学习笔记时,我可以为你提供一些基本的指导和主题,以帮助你开始学习Docker。以下是一些可能涵盖的主题: 1. Docker简介:了解Docker的基本概念、优势以及它如何与虚拟化技术不同。 2. Docker安装:学习如何在不同的操作系统上安装Docker,并熟悉Docker引擎的组成部分。 3. Docker镜像:了解Docker镜像的概念,以及如何通过构建、拉取和推送镜像来管理和共享容器环境。 4. Docker容器学习如何创建、启动、停止和删除容器,并了解容器和主机之间的交互方式。 5. Docker网络:探索Docker网络模式,包括桥接网络、主机网络和覆盖网络,并理解容器之间以及容器与主机之间的通信方式。 6. Docker存储:了解Docker存储技术,包括数据卷和绑定挂载,并学习如何在容器中持久化数据。 7. Docker Compose:介绍Docker Compose工具,它可以用于定义和运行多个容器的应用程序。 8. Docker Swarm:探索Docker Swarm,它是Docker官方的容器编排和集群管理工具,于在多个主机上部署和管理容器应用。 9. Docker和持续集成/持续部署(CI/CD):了解如何将Docker与CI/CD工具(如Jenkins、GitLab CI等)集成,以简化应用程序的构建和部署过程。 这只是一些可能的主题,你可以根据自己的需求和兴趣来选择学习内容。希望这些指导可以帮助你开始学习Docker!如果你有任何特定的问题,我很乐意回答。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值