docker 的常用配置

[TOC]

docker pull 慢

docker-machine ssh 连接宿主机 default

sudo vi /etc/docker/daemon.json

{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/", "http://hub-mirror.c.163.com"]
}

sudo /etc/init.d/docker restart

或者

echo "{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/", "http://hub-mirror.c.163.com"]
}">/etc/docker/daemon.json

sudo /etc/init.d/docker restart

注意:

  • 这个更改会同时改变 Kitematic 的镜像源
  • 有时候,daemon.json 不存在,新增一个就行

Docker pull卡住,解决方案 这篇文章中提到几个可以用的国内加速器(中国科技大学的镜像加速器、阿里云加速器、DaoCloud 加速器)

中国科技大学的镜像加速器,进一步的信息可以访问:Docker Hub 源使用帮助

docker hub下载速度太慢,更新国内源 另外一个国内源 http://hub-mirror.c.163.com

docker镜像源加速设置之windows 这篇文章讲解了 ToolBox 下,如何设置

官方文档 Registry as a pull through cache 注意,docker 18 版 以后,修改 daemon 的命令有调整

# 原来
docker --registry-mirror=https://registry.docker-cn.com daemon
# 现在
dockerd --registry-mirror=https://registry.docker-cn.com

操作 daemon 参考这篇文章,Docker学习笔记 — 配置国内免费registry mirror

docker 容器中部署应用存在 时差 8 小时 问题

一开始发现时差问题时,各种解决不了,指导阅读到了这篇文章 boot2docker持久化配置,修改时区时间和docker国内镜像地址 ,才知道每一次重启 宿主机 default 的时候,都是重新加载的,因此,必须有一个持久化的方法。但是,这篇文章说明的不是很详细,直到看到了这篇文章 boot2docker 遇到的几个坑 觉得特别赞,按照这个方法成功的解决了时差 8 小时的问题;

主要问题一共有这么几个:

  • 宿主机 default 上并没有 /user/share/zoneinfo 这个目录,因此网上的好多文章并不能用
  • 时差配置完毕以后,重启电脑,或者重启宿主机都会导致时差配置失效,不能持久化

因此,解决方案如下:

  • 从包含正确时区的 linux 设备上 使用远程命令 scp 拷贝一个正确的 localtime 文件到/mnt/sda1下;
    • 命令: sudo scp root@192.168.3.232:/etc/localtime /mnt/sda1/
  • 然后在 /mnt/sda1/var/lib/boot2doceker 下新建 bootlocal.sh文件,并赋予执行权限;
    • 命令 sudo echo 'cp -f /mnt/sda1/localtime /etc/localtime && echo "Asia/Shanghai" > /etc/timezone;'>/var/lib/boot2docker/bootlocal.sh
    • 权限 chmod +x /var/lib/boot2docker/bootlocal.sh

dokcer 容器被局域网发现

docker toolbox无法被外网访问解决方法 看完这篇文章,突然觉得好简单,绕了天大的一个圈子,然后转了回来。好了现在解决了,开心!

Docker高级网络实践之 玩转Linux network namespace & pipework

上面这篇文章,有很多关于 linux ip 这个命令的使用,关于 ip 命令的详解见文章:Linux ip命令详解

IP 命令使用方法 包含 ip link set 命令组的介绍,摘录如下

ip -s -s link show                                  # 显示所有接口详细信息
ip -s -s link show eth1.11                          # 显示单独接口信息
ip link set dev eth1 up                             # 启动设备,相当于 ifconfig eth1 up
ip link set dev eth1 down                           # 停止设备,相当于 ifconfig eth1 down
ip link set dev eth1 txqueuelen 100                 # 改变设备传输队列长度
ip link set dev eth1 mtu 1200                       # 改变 MTU 长度
ip link set dev eth1 address 00:00:00:AA:BB:CC      # 改变 MAC 地址
ip link set dev eth1 name myeth                     # 接口名变更

Linux网络命名空间 这篇文章觉得特别好,其中介绍到:虚拟网卡 veth,是成对出现的,就像一个管道的两端,从这个管道的一端的veth进去的数据会从另一端的veth再出来。因此,创建虚拟网卡 veth 都是成对出现

上面这篇文章中关联了几篇文章,觉得有价值的如下:

DOCKER基础技术:LINUX NAMESPACE(上)
DOCKER基础技术:LINUX NAMESPACE(下)
docker 网络
Network namespaces 这里面讲了一些等效用法,有启发

eth 是 Ethernet 的缩略 以太网络

docker for windows 容器内网通过独立IP直接访问的方法 讲了在windows下通过配置 route 命令配置路由的方式,使得 docker 容器 可以被局域网发现

docker network 对官网的文旦进行了一翻译

ip addr 输出的 linux IP 信息都是啥含义,参见文章:透过ip addr看ip

图解的一些概念,可以 docker 网络配置

Docker的网络类型和固定IP设置
docker 官网 macvlan 配置说明

Docker容器通过独立IP暴露给局域网的方法
Docker 容器使用宿主机同网段IP - 实话实说,目前还看不懂
Docker第二波
Docker第三波

docker 数据持久

在 mysql 官网上看到,在 docker 中部署 mysql 的时候,采用的是 --mount 命令完成持久化;这个以前没有了解过,于是查阅资料:

Docker数据持久之volume和bind mount 在这篇文章中,介绍了三种持久化的方案;表达了2个区别:

  • Bind mount会覆盖容器中的文件,而volume mount则不会,即如果容器中已有文件,则会将文件同步到主机的目录上。
  • mount 方式与Linux系统的mount方式很相似,即是会覆盖容器内已存在的目录或文件,但并不会改变容器内原有的文件,当umount后容器内原有的文件就会还原。

docker volumes 中 -v 和 -mount 区别 在这篇文章中说,没啥区别

注意了,run 命令下 -v 和 --mount 是等效的;区别另外一种持久化方案 bind mounts 见官网 Use bind mounts

run -v 参数用法总结

宿主主机路径(文件)与容器绑定

详见 官方文档 docker run -v 参数的使用相关章节

docker run -v [宿主主机文件系统路径]:[容器文件系统路径]

如果宿主主机中路径不存在,docker 会自动创建这个路径

绑定卷

详见 官方文档 use volumes

docker run -v [卷名称]:[容器文件系统路径]

docker 默认存储路径位置迁移

在实践中,通常需要把 docker 存储的路径放到一个比较大的磁盘中,避免占用系统盘过多的空间,采用这篇文章的方式 Docker修改默认存储位置

摘录如下:

# 确认当前 docker root dir 位置
docker info | grep 'Docker Root Dir'    // 默认输出结果为:Docker Root Dir: /var/lib/docker
# 移动到 docker root dir 路径上一层
cd /var/lib
#停止docker服务
root@xxxxxx:/var/lib# service docker stop 
#备份原目录
root@xxxxxx:/var/lib# cp -a docker{,_bak}
#拷贝数据到新位置
root@xxxxxx:/var/lib# cp -a docker/ {new_location}/
#建立软连接:
root@xxxxxx:/var/lib# rm -rf docker/
root@xxxxxx:/var/lib# ln -s {new_location}/ docker
#启动docker
root@xxxxxx:/var/lib# service docker start
#检查移动后数据是否完整
root@xxxxxx:/var/lib# docker images
root@xxxxxx:/var/lib# docker ps -a
#如果docker完整并可用,删除备份
root@xxxxxx:/var/lib# rm -rf docker_bak/

docker 使用宿主机 IP 访问容器

增加防火墙配置

# 整体放开 docker 的防火墙限制
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
# xxxx改为你希望的端口号
# do firewall-cmd --permanent --zone=trusted --add-port=xxxx/tcp
sudo firewall-cmd --reload

找了很多文章,终于看到一篇讲到这个主题,在 centos7 下面通过配置 firewall 实现 docker 容器通过宿主机 IP 和具体端口号访问宿主机上的其他容器,详见 docker、firewalld和iptables之间的关系

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,928评论 6 509
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,748评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,282评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,065评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,101评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,855评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,521评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,414评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,931评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,053评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,191评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,873评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,529评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,074评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,188评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,491评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,173评论 2 357

推荐阅读更多精彩内容

  • 爱我所爱,行我所行,心❤️之所向,无问西东!
    梅子曦阅读 99评论 0 0
  • 爱情里最棒的心态就是:我的一切付出都是 场心甘情愿,我对此绝口不提。你若投桃报 李,我会十分感激。你若无动于衷,我...
    韩晓_7732阅读 104评论 0 0
  • 脑子本来是老老实实的当工具的。这个工具就是有时候好使有时候不好使,有时候被褒有时候被贬。 后来脑子非得被夸。于是从...
    丁勺园阅读 172评论 0 0
  • 坚持件不容易的事,就像这更新似的,稍微的一松懈就想打退堂鼓,不过经历了挣扎还是继续吧,理由和借口都是对自己的敷衍,...
    行走的S先生阅读 178评论 0 0
  • 寂寞春雨夜,损香冷雨歇。 花谢嫩牙吐,明朝独爱叶。
    笨笨孩阅读 176评论 0 1