docker学习系列4 简单总结 docker-curriculum

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 来源:https://docker-curriculum.com/这篇文章不错,可以作为第一篇 docker 的入门,我简单总结了下。顺便重温下之前的内容。

来源:https://docker-curriculum.com/
这篇文章不错,可以作为第一篇 docker 的入门,我简单总结了下。顺便重温下之前的内容。
如果你是刚学docker,最好跟着敲一遍。

  1. 安装,略,自己去官方文档查
  2. 执行 docker pull busybox 去官方拉镜像
    BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。
    简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell。
  3. 使用 docker images 查看镜像
  4. 创建容器启动 docker run busybox
    会看到啥都没有发生,因为没有提供任何命令,容器启动后,运行个空命令就退出了。
  5. 如果提供个命令呢 docker run busybox echo "hello from busybox"
    这个能看到输出了,但是容器执行完依然退出了。
  6. 我想查看正在运行的容器 docker ps
    没有任何输出
    试试 docker ps -a 可以看到刚刚运行过的容器了,注意 status 列
img_1a8f87882548f86ca29c31bf659cf88e.png
image.png
  1. 如果想以交互式方式运行容器,并进入容器终端,就用 docker run -it busybox sh 注意 -it 一般是同时出现的
img_6386ff2195c442a2b45e1c4ea62d8ad7.png
image.png

-t tty的缩写 终端控制台
-i interactive 可交互缩写
如果想知道 run 后面都能带什么参数及含义,请使用 docker run --help

  1. 一些术语:
  • Docker Daemon - Docker为C/S架构,服务端为docker daemon,在后台运行,用于管理,构建,分发容器
  • Docker Client - 就是咱们用的命令行工具,还有 GUI 图形化的Kitematic
  • Docker Hub - 分享,查找镜像资源的网站

WEBAPPS WITH DOCKER

  1. 我们运行一个容器 docker run --rm prakhar1989/static-site prakhar1989/static-site 是作者维护的镜像
    --rm 当退出容器时自动移除
    这里容器启动会显示了 nginx is running,但没有告诉更多的信息
    img_6713d24b64550fd01ea8841dd4d6ec96.png
    image.png

    按 ctrl+c 退出
  2. 使用 docker run -d -P --name static-site prakhar1989/static-site
    -d 放到后台运行
    -P 将容器内应用运行使用的端口暴露出来 ( Publish all exposed ports to random ports)
    --name 给容器起个名字
img_00993e274f6886ea58f1277afdb927f3.png
image.png

端口有了,可以打开站点了,还可以使用 docker run -p 8888:80 prakhar1989/static-site 指定端口

img_f0f2aea45460e2197f1fddf29284cce5.png
image.png

同时运行了两个容器

img_6c1a8f67411e1deb81b37986b081740d.png
image.png
  1. 暂停容器用 docker stop static-site static-site 是我们给运行时给容器起的名字,也可以用ID
  2. 后面内容是使用 Dockerfile 构建自己的镜像并上传到AWS。由于之前讲过而且aws国内使用不方便,此处略过。
  3. 当docker安装后,会自动创建三个网络
$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
c2c695315b3a        bridge              bridge              local
a875bec5d6fd        host                host                local
ead0e804a67b        none                null                local

默认使用的是 bridge 桥接。使用 docker network inspect bridge 在 Containers 下面看到正在使用该网络方式的所有容器。默认所有的容器都会使用bridge,通过刚才的命令还可以看到每个容器分配到的内部IP。 一般是 172.17.0.xx。 为了安全及方便,我们需要使某几个容器之间使用自己的桥接网络,如何做到呢?

  1. 使用 docker network 创建一个新的bridge网络,比如 docker network create foodtrucks-net
img_2f8c6592f7fb62ec3f74d05e001b54e8.png
image.png
  1. 运行 Elasticsearch 容器并把刚创建的网络分配给他
    docker run -d --name es --net foodtrucks-net -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2
  2. 然后运行Python Flask 容器,并进到bash终端
    docker run -it --rm --net foodtrucks-net finleyma/foodtrucks-web bash
    来测试下能否访问到 Elasticsearch 容器
    curl es:9200
    tips: 访问容器网络没有输入容器的IP地址,用的容器名称表示,这种能力叫 automatic service discovery

备注:elasticsearch挺占内存的,我服务器4G内存,在docker运行启动后出现了警告

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2月前
|
运维 虚拟化 开发者
Docker-全面详解(学习总结---从入门到深化)
Docker-全面详解(学习总结---从入门到深化)
47 1
|
3月前
|
分布式计算 Java Linux
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
Docker 是一套构建在 Linux 内核之上的高级工具,旨在帮助开发人员和运维人员更轻松地交付应用程序和依赖关系,实现跨系统和跨主机的部署。使用安全且轻量级的容器环境来实现这一目标。容器可以手动创建,也可以通过编写 Dockerfile 自动创建。开发人员和运维人员可以将应用程序及其依赖打包到容器中,实现应用程序的可移植性和环境一致性。
107 5
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
|
2月前
|
Ubuntu 应用服务中间件 Docker
docker-学习
docker-学习
20 0
|
2月前
|
消息中间件 RocketMQ Docker
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
53 0
|
3月前
|
存储 运维 Linux
精彩推荐 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
在使用Docker时,管理维护工作可能会显得复杂。然而,实际上,Docker提供了许多便捷且人性化的工具,这些工具的使用技巧可以大大简化维护工作,并提升效率。通过掌握这些技巧,你不仅能够更轻松地管理Docker环境,还能展现出专业的能力。接下来我们就给大家介绍一下对于我在工作当中对于Docker容器使用的技术实战总结
48 2
精彩推荐 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
|
3月前
|
消息中间件 RocketMQ Docker
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)(下)
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
30 0
|
消息中间件 RocketMQ Docker
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)(上)
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
66 0
|
3月前
|
Java 应用服务中间件 Shell
|
3月前
|
存储 Ubuntu Docker
|
3月前
|
Kubernetes iOS开发 Docker
为什么你应该学习 Docker 🐋 和 Kubernetes ☸️?
如果您是一名开发人员,我相信您一定听说过这句话:“它可以在我的机器上运行”。当我们的代码在您的计算机上运行但在朋友的计算机上表现不佳时,这是令人心碎的。
23 0