Docker配置及Dockerfile

Docker配置

Docker配置及Dockerfile_第1张图片

设置docker的静态ip

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

创建自定义网络(network)

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

默认docker网络

Docker配置及Dockerfile_第2张图片

自定义网络后

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

Docker配置及Dockerfile_第3张图片

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

Docker配置及Dockerfile_第4张图片

Docker配置及Dockerfile_第5张图片

容器内安装命令

以安装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

Docker配置及Dockerfile_第6张图片

保存&退出(: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镜像的制作过程,由于仅是简单、小体积的文件,在网络等介质中传递的速度快,能够更快的实现容器迁移和集群部署。

Docker配置及Dockerfile_第7张图片

Dockerfile的基本结构

Docker配置及Dockerfile_第8张图片

linux服务器配置docker

Docker配置及Dockerfile_第9张图片

配置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配置及Dockerfile_第10张图片

重新加载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

Docker配置及Dockerfile_第11张图片

开放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插件(如果没有安装)

Docker配置及Dockerfile_第12张图片

idea配置docker

Docker配置及Dockerfile_第13张图片

Docker配置及Dockerfile_第14张图片

Docker配置及Dockerfile_第15张图片

Docker配置及Dockerfile_第16张图片

springboot整合Dockerfile

Docker配置及Dockerfile_第17张图片

项目中配置Dockerfile文件

Docker配置及Dockerfile_第18张图片

模块打包

Docker配置及Dockerfile_第19张图片

Docker配置及Dockerfile_第20张图片

编写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"]
Docker配置及Dockerfile_第21张图片
Dockerfile运行配置

Docker配置及Dockerfile_第22张图片

Docker配置及Dockerfile_第23张图片

linux服务器
查看镜像

Docker配置及Dockerfile_第24张图片

查看运行的docker容器

Docker配置及Dockerfile_第25张图片

测试访问

Docker配置及Dockerfile_第26张图片

你可能感兴趣的:(docker,linux,运维,服务器,java,容器)