疯狂的企鹅

Crazy.Rico's Blog


  • 首页

  • 归档

  • 关于

  • 标签

  • 分类

  • links

  • 搜索

Docker之旅-Docker互联

发表于 2017-09-11 更新于 2019-10-16 分类于 微服务 , docker 阅读次数:
本文字数: 1.1k 阅读时长 ≈ 1 分钟

Docker的互联方式

  • 基于Volume的互联
  • 基于Link的互联
  • 基于网络的互联

基于Volume的互联

在docker run 启动一个容器的时候,我们可以通过设置 -v 参数将宿主机目录映射到容器目录,这样容器对映射路径下数据的修改即使在容器被删除的情况下,数据还能够保留。
run_docker_with_v.png
进入learn目录,在此目录下创建 一个文件夹
run_docker_with_v2.png
查看容器详情,在Mounts 节点我们可以看到/learn 目录对应的宿主机目录,进入:/var/lib/docker/volumes/858c12a2fed04733b27256ae57a1f76455e9f0030182ad405bf5fd5aa049c54d/_data
docker inspect 4bc0f1e4a005
run_docker_with_v3.png
查看宿主机的目录,我们可以发现我们在容器中创建的 testvolume 文件夹目录
run_docker_with_v4.png
可以多个容器中的Volume指向宿主机的同一个目录,实现基于文件的的共享访问
run_docker_with_v5.png
run_docker_with_v6.png
基于容器数据的的单主机互联
run_docker_with_v7.png

基于Link的互联

启用一个mysql docker 容器

docker run --rm=true --name=marspiedb -e MYSQL_ROOT_PASSWORD=123456 mysql

run_docker_link1.png
查看我们创建的marspiedb 详细信息

# docker inspect marspiedb

run_docker_link2.png
Docker默认允许container互通,通过-icc=false关闭互通。一旦关闭了互通,只能通过-link name:alias命令连接指定container.
run_docker_link3.png
– link redis:db的别名,会在/etc/hosts中生成对应的ip映射
run_docker_link4.png
Link跨主机的互联,使用 Docker远程代理(Ambassador)模式,https://github.com/gliderlabs/connectable
socat是一个多功能的网络工具,名字来由是”Socket CAT”

基于网络的互联

  1. 最常用的方式端口映射,将docker端口映射到宿主机,直接通过宿主机IP:映射端口 访问
    docker run --rm=true --name=marspiedb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
  2. 直接使用宿主机网络
    docker run --rm=true --net=host --name=marspiedb -e MYSQL_ROOT_PASSWORD=123456 mysql
  3. 容器共用一个IP地址
    docker run --rm=true --name=marspiedb -e MYSQL_ROOT_PASSWORD=123456 mysql
    docker run --rm=true --net=container:marspiedb java ip addr
    run_docker_net1.png
    同一个IP 使用localhost 就可以很愉快的访问(⊙o⊙)哦
    run_docker_net2.png
-------------本文结束感谢您的阅读-------------
Crazy Rico wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
Crazy Rico 微信支付

微信支付

Crazy Rico 支付宝

支付宝

# 微服务 # docker
Docker之旅-Docker镜像制作
Docker之旅-使用阿里云Docker镜像库加速
  • 文章目录
  • 站点概览
Crazy Rico

Crazy Rico

33 日志
17 分类
39 标签
RSS
GitHub FCC E-Mail 慕课网 阿里云
  1. 1. Docker的互联方式
  2. 2. 基于Volume的互联
  3. 3. 基于Link的互联
  4. 4. 基于网络的互联
苏ICP备17004952号 © 2020 Crazy Rico | 90k | 1:22
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Gemini v7.3.0
|
0%