docker 创建vue项目 及 iptables 映射问题处理

902 阅读2分钟

这是我参与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

国内加速地址有:

过程中遇到的异常错误

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 端口映射规则就会被重新自动创建出来

指导文章