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

来源: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 列

image.png

  1. 如果想以交互式方式运行容器,并进入容器终端,就用 docker run -it busybox sh 注意 -it 一般是同时出现的

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,但没有告诉更多的信息

image.png 按 ctrl+c 退出

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

image.png

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

image.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

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运行启动后出现了警告

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

如何连接Docker容器

使用Docker来容纳应用程序时,通常的做法是在单独的容器中运行应用程序的每个组件。例如,一个网站可能有一个Web服务器,应用程序和数据库,每个都在自己的容器中...

1304

Docker / OSX快速入门

Docker(容器技术)始于2013年,自那时起我便经常可以看到有关docker的消息。之前我已经尝试过docker的入门例子,但我觉得自己没有真正理解dock...

23510
来自专栏清晨我上码

docker运行容器远程挂载卷

3872
来自专栏搜云库

Ubuntu 17.04 x64 安装 Docker CE

Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本!使用 Docker,可以让应用的部署、测...

34710
来自专栏solarest的专栏

基于OSX平台的Docker快速入门(还没有熟悉Docker吗?那就从这开始吧)

仅仅在2013年左右才发布的Docker,却已经遍布了我的Twitter消息和RSS阅读器。在之前我已经运行过“Hello World”的示例,但我自觉没有能真...

2287
来自专栏点滴积累

Docker网络——单host网络

前言 前面总结了Docker基础以及Docker存储相关知识,今天来总结一下Docker单主机网络的相关知识。毋庸置疑,网络绝对是任何系统的核心,他在Docke...

3705
来自专栏Kubernetes

docker container DNS配置介绍和源码分析

本文主要介绍了docker容器的DNS配置及其注意点,重点对docker 1.10发布的embedded DNS server进行了源码分析,看看embedde...

7917
来自专栏三木的博客

QEMU 1: 使用QEMU创建虚拟机

一、QEMU简介# QEMU是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor, VMM)。QEMU主要提供两种功能给用户使用。一...

3527
来自专栏吴伟祥

Linux中ctrl-c, ctrl-z, ctrl-d 区别

1、Ctrl+C比较暴力,就是发送Terminal到当前的程序,比如你正在运行一个查找功能,文件正在查找中,Ctrl+C就会强制结束当前的这个进程。

721
来自专栏不止是前端

Docker:Windows下部署MySQL

37713

扫码关注云+社区

领取腾讯云代金券