这是我参与8月更文挑战的第26天,活动详情查看:8月更文挑战
如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。更多往期文章在我的个人专栏
docker 创建vue项目 及 iptables 映射问题处理
背景
首先需要在 docker 镜像中创建一个前端项目,步骤如下:
- npm install -g vue-cli 全局安装 vue-cli
- 创建项目
- vue create 选择手动配置
- vue ui
- npm run build 建立生成环境代码
- npm run serve / npm run dev 启动webpack
- vue serve demo.vue 单页应用启动
修改仓库源
创建或修改 /etc/docker/daemon.json 文件,修改为如下形式: vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
使用命令重启 docker 服务:systemctl restart docker.service
国内加速地址有:
-
Docker中国区官方镜像 registry.docker-cn.com
-
中国科技大学 docker.mirrors.ustc.edu.cn
-
阿里云容器镜像服务 cr.console.aliyun.com/ 首页点击“创建我的容器镜像” 得到一个专属的镜像加速地址,类似于“1234abcd.mirror.aliyuncs.com”
过程中遇到的异常错误
iptables --wait -t nat -I DOCKER -i br-d38d92300109 -j RETURN:iptables: No chain/target/match by that name.
原因:docker 服务启动的时候,docker 服务会向 iptables 注册一个端口映射链,以便让 docker 服务管理的 containner 容器所暴露的 端口之间映射关系进行通信
通过命令 iptables -L
可以查看 iptables
端口映射链
在开发环境中,如果你删除了 iptables 中的 docker 相关的端口映射链,或者 iptables 的网络规则会因此被丢失了(例如重启firewalld),docker就会报 iptables error
异常提示。例如:
failed programming external connectivity … iptables: No chain/target/match by that name
要解决这个问题,只要重启docker服务,之后,正确的 iptables
端口映射规则就会被重新自动创建出来
指导文章