初次接触
想起第一次用Docker的原因,当时还在读书,所以手里的海外服务器并不多。当时为了方便自己科学上网查学习资料,由于众所周知的原因,必须得用手里数量不多的服务器来代理了。但是手里又有其它服务需要跑,那么一台服务器运行包括科学上网在内的众多服务也就司空见惯了。然而令人头痛的就在这里,因为不同服务的环境问题,导致某些服务通常只能正常运行其中一个,这种情况下,我就只能进行环境隔离了。所以,首先想到的就是利用容器了,也就开始用起了Docker。
后记:果然懒才是第一生产力,后面直接分别写了公共脚本和自己私用的shell脚本,直接一把梭😅
一起成长(梦想依在,人生正当年)
Docker: 与社区共同成长
使用Docker的过程中,其实也并不是想象的那么美好,不过好在,Docker经过这几年的迭代,变得越来越优秀,而我的技术也在稳步提升。这几年,提供容器服务的厂商,井喷式的增长,当然,也有不少被薅倒闭的,曾经的三大容器服务,如今只剩 HeroKu
还在继续。虽然 Heroku
每个月免费额度只有550小时,但是它不同地域、不同容器之间,竟然可以做负载均衡,曾经一度是科学上网“最佳实践”。
最开始,只是想着把不同服务的环境隔离开,才使用Docker。到后来,每次接触到新技术,我都会去看能不能用 Docker 运行。就好比“世界运行在 SharePoint 上一样”(doge,我绝大部分的服务,都是跑在 Docker 上的,包括开发、测试和部署环境。在确保开发与生产之间一致性的同时,我可以完全在本地进行编码和测试。
到毕业后,惊喜的发现,不少公司面试的时候,熟悉 Docker 都是一个加分项(明明只是开发,硬是被逼成了全干工程师🤣
我的一些Docker笔记
几乎所有主流平台,我都使用过,但限于我有60%的服务器是 CentOS 7.x
,那就围绕这个系统来写吧。
CentOS 7.x && Docker
安装Docker
- 卸载可能存在的旧版本
|
|
- 设置稳定的存储库并安装
|
|
- 安装最新版本的Docker Engine和容器,或者转到下一步安装特定版本:
|
|
如果提示您接受 GPG 密钥,请验证指纹是否匹配
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
,如果是,则接受它。
- 设置开机启动,并启动Docker
|
|
Docker安装配置Redis
- 拉取镜像
|
|
- 在合适的位置创建下面两个文件夹
|
|
- 启动容器
|
|
-d 在后台运行
-p 6379:6379 端口映射,左边为宿主机的端口,右边为容器的端口
--restart always 自动启动
--privileged=true 给容器root权限
-v /root/conf/redis.conf:/usr/local/etc/redis/redis.conf 挂载配置文件,冒号左边为宿主机,右边为容器
-v /root/data:/data 数据目录,冒号左边为宿主机,右边为容器
--requirepass 冒号里面填密码,也可以在conf里面配置
--appendonly 是否开启持久化,也可以在conf里面配置
启动自定义的容器
- 创建用户定义的网络
|
|
- 运行镜像
|
|
基本上大部分容器可以按照此思路来。
Windows 10 配置狗东自动脚本
- 下载镜像
|
|
- 启动容器
|
|
学习Docker
推荐2本书:《Docker实战》、《第一本Docker书》,我只看过《第一本Docker书》,个人感觉还不错。
然后就是官方文档了,已经够详细了,碰到问题也可以去仓库的issues看看。
ARM Docker
2021年4月15日,Docker能够运行在M1芯片的Macbook上面了,也预示着 ARM 架构的未来。虽然现在还需要安装 Rosetta 来进行兼容,当你想要在官网下载时,就会提醒你。V站上不少人都说,M1开发很香😯现在估计就是兼容性问题,让很多人不敢上车。
不过我这里还是忍不住吐槽一下,苹果你不出小键盘,我是绝对不会买 MacBook 的🙄反正不买也能照样用 MacOS,而且性能也不差。