添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

将IP和MAC写入环境变量

# 宿主机.bashrc文件
export ip_address=$(ifconfig | grep 'inet .*br' | sed -E 's/.*inet (.*) netmask.*/\1/')
export mac_address=$(ifconfig eth0 | grep ether | grep -oE "[a-fA-F0-9:]{17}")

docker compose读取环境变量并传入容器

version: "3.8"
services:
    unicom_etl:
        image: unicom_etl:1.5
        build: .
        container_name: unicom_etl_1.5
        environment:
            - mac_address=${mac_address}
        volumes:
            - log:/vol
            - ./:/app
        restart: always

容器内获取环境变量

import os
os.environ.get('mac_address')

参考:
https://www.04007.cn/article/1147.html
https://github.com/docker/compose/issues/4081#issuecomment-416165383

公司项目License系统激活需要获取IP地址、LZ通过ssh服务连接宿主机执行shell脚本语言在docker容器获取宿主机MAC地址、磁盘序列号、CPU序列号与License绑定,达到定制化主机系统激活,中间如果报命令不存在的话,下载对应的命令即可,话不多说脚本写起。 实际项目当中,我获取了CPUID、系统序列号、系统UUID、系统型号、处理器厂家,之所有获取这么多信息标识机器,是考虑到有些信息在某些系统可能为空,而且CPUID也不唯一了,所以就多获取些。思路:在docker容器内安装ssh,sshpass服务,通过ssh连接到宿主机执行命令,获 取宿主机信息(必须知道宿主机Ip和密码)大体思路是docker 支持通过-e来传递参数到容器内部程序,就像安装docker-mysql那样密码可以通过参数传递一样。将宿主机的如下两个目录挂载到容器中。 在我们使用C# WinForm中,我们有时候是需要或者自己本机的IP地址进行处理,今天我们学习一下如何使用C# Winform获取主机的IP地址。现在博主手把手教你获取,很简单的。创建Winform窗体文件,这里我就不多做介绍,你们可以看看我之前的文章,都是保姆级的。我们从winform 工具箱拖动textbox,和一个按钮,对按钮重命名 3.4 AddressFamily方法字段 docker 中的程序需要连接外部的程序,连接的过程中会告知外部程序自己的ip地址,然后外部的程序会回连docker中的程序。由于docker使用的是rancher中的托管模式,外部程序是没办法直接连接到容器中的,那么如何解决呢? 1、将主机/proc目录挂载到容器中 -v/proc:/hostip/:ro 2、运行docker的时候添加主机完全访问权限 --privileged 3、在容器中运行命令 # 获取网络信息需要指定. 程序通常通过与软件捆绑在一起的配置来控制操作,环境变量允许用户在运行时设置它们。但是,在 Docker 容器中运行进程会使事情变得复杂,那么如何将环境变量传递给容器呢?下面介绍若干个传递办法。 [root@latform-2 ~]# docker run --rm -e MYALPINE=zhang alpine:latest printenv PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=f40bfb0451e5 MYALPINE=zhang HOME=/root # --rm 停止后删除 # -e 传递环境变量,以key=value Docker 网络子系统使用可插拔的驱动,默认情况下有多个驱动程序,并提供核心联网功能。 bridge:桥接网络,这是默认的网络驱动程序(不指定驱动程序创建的容器默认是bridge驱动)。 host:主机网络。消除容器和主机的网络隔离,直接使用主机的网络。 overlay:覆盖网络。可以将多个Docker守护进程连接,实现跨主机容器通讯(swarm集群)。 macvlan:将MAC地址分配给容器,使容器作为网络上的物理设备。不通过Docker主机网络栈进行路由,直接通过MA 文章目录一、docker基本命令(运维版)1、查看镜像——docker images2、查看所有状态容器——docker ps -a3、docker —— run 指令工作流程4、查看docker版本命令——docker -v5、 查看docker信息——docker info6、docker帮助命令文档——docker --help二、docker 镜像操作1、搜索镜像(公共仓库)——docker search2、下载镜像——docker pull3、查看镜像列表——docker images4、获取镜像 容器端口可以与宿主机的端口进行映射绑定,从而把宿主机变成对应的服务,不用关心容器IP地址,每个端口都只能和一个容器绑定。Habor 是在 Registry 上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:提供 WEB界面,优化用户体验,支持登陆、搜索功能,区分公有、私有镜像,以及基于角色的访问控制,集成日志审计、支持水平扩展等功能。 如何解决无法获取系统变量?如何解决linux系统每次重启Mac地址变化?Linux docker系统每次重启MAC随机变化,改用profile文件配置变量方式,配置开机自启动tomcat时getEnv(s)获取系统环境变量null,手动启动tomcat时可以获取到值