Docker配置及Dockerfile

本文详细介绍了如何在Docker中设置静态IP,创建自定义网络,处理IPv4转发问题,容器内安装Linux命令,Dockerfile的使用,Linux服务器配置,以及Springboot项目与Docker的集成。
摘要由CSDN通过智能技术生成

Docker配置

设置docker的静态ip

docker容器的ip地址在每次启动后启动顺序设置ip地址,为解决ip地址变动的问题,我们有必要设置docker内部ip地址固定。

创建自定义网络(network)

docker network create —driver bridge —subnet=自定义网络ip/16 —gateway=网关值 自定义网络名称

默认docker网络

自定义网络后

docker network create —driver bridge —subnet=172.18.12.0/16 —gateway=172.18.1.1 wn_docker_net

  1. [root@localhost ~]# docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 wn_docker_net
  2. 51503b70deb95434f3542cd175840448d0b605a7ca507c97c2459cee1f796842

容器内安装命令

以安装vim为例

进入容器,运行命令apt-get update
  1. root@192:/etc/gitlab# apt-get update
安装命令
  1. root@192:/etc/gitlab# apt-get install vim

docker常见问题及解决方案

问题:IPv4 forwarding disabled

问题描述

IPv4 forwarding is disabled。网络不能联通。

解决方案

设置:net.ipv4.ip_forward = 1

保存&退出(:wq)

重启网络
  1. systemctl restart network

查看ipv4重定向值

  1. [root@localhost ~]# sysctl net.ipv4.ip_forward
  2. net.ipv4.ip_forward = 1

问题: 容器中没有linux命令

当使用linux命令时,显示“command not found”。

问题描述

解决方案
  1. 更新容器中linux

apt-get update

  1. root@1aba593b6c47:/etc/mysql# apt-get update
  1. 安装程序

apt-get install 命令

  1. root@130dddbf14ee:/# apt-get install vim

Dockerfile

Dockerfile是Docker中用于定义镜像自动化构建流程的配置文件,在Dockerfile中,包含了构建镜像过程中需要执行的命令和其他操作。通过Dockerfile可以更加清晰、明确的给定Docker镜像的制作过程,由于仅是简单、小体积的文件,在网络等介质中传递的速度快,能够更快的实现容器迁移和集群部署。

Dockerfile的基本结构

linux服务器配置docker

配置docker remote api

在linux中配置docker的远程调用接口。

编辑docker.service

使用 vim 打开/lib/systemd/system/docker.service文件。

  1. vim /lib/systemd/system/docker.service
编辑service模块

修改ExecStart的内容:
ExecStart=/usr/bin/dockerd -H fd:// —containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

  1. [Service]
  2. Type=notify
  3. # the default is not to use systemd for cgroups because the delegate issues still
  4. # exists and systemd currently does not support the cgroup feature set required
  5. # for containers run by docker
  6. #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock #原来的ExecStart
  7. ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock #新的ExecStart

重新加载docker

重新加载docker的daemon

  1. systemctl daemon-reload

重新启动docker

  1. systemctl restart docker.service
验证配置

查询端口2375状态

  1. [root@localhost system]# netstat -nplt|grep 2375
  2. tcp6 0 0 :::2375 :::* LISTEN 83061/dockerd

使用crul测试api

curl http://192.168.200.104:2375/info

开放2375端口
  1. [root@localhost system]# firewall-cmd --zone=public --add-port=2375/tcp --permanent
  2. success
  3. [root@localhost system]# firewall-cmd --reload
  4. success
下载java镜像

项目中要依赖java,需要下载java的镜像。

下载java版本 :anapsix/alpine-java

  1. docker pull anapsix/alpine-java

idea配置docker插件

idea安装docker插件(如果没有安装)

idea配置docker

springboot整合Dockerfile

项目中配置Dockerfile文件

模块打包

编写Dockerfile文件
  1. FROM anapsix/alpine-java:latest #引用java镜像
  2. EXPOSE 10021
  3. ADD target/book-type-1.0-SNAPSHOT.jar /TypeApp.jar
  4. ENTRYPOINT ["java","-jar","/TypeApp.jar"]
Dockerfile运行配置

linux服务器
查看镜像

查看运行的docker容器

测试访问

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值