linux docker 设置固定容器IP(docker默认 容器ip会变解决)


在学习Docker 各种网络模式前,先要了解Docker 网络的常用命令。

2.1 查看网络
docker network ls
2.2 创建网络
# 基础用法
docker network create 网络名称

# 创建网络时是可以添加一系列参数的:
# --driver:驱动程序类型
# --gateway:主子网的IPV4和IPV6的网关
# --subnet:代表网段的CIDR格式的子网
# mynet:自定义网络名称
docker network create --driver=bridge --gateway=192.168.137.1 --subnet=192.168.137.0/16 mynet

不指定任何选项的时候默认的–driver(网络模式)也是bridge(桥接)

但是gateway和subnet会自动生成

2.3 查看网络数据源
docker network inspect 网络名称

2.4 将容器连接到指定网络
docker network connect 网络名称 容器名称

2.5 断开容器的网络
docker network disconnect 网络名称 容器名称

2.6 删除所有不在使用的网络
docker network prune

2.7 删除一个或多个网络
docker network rm 网络名称

一、创建自己的网络类型并指定网段
docker network create --subnet=172.18.0.0/26 mynetwork

二、镜像启动运行时指定自己的网络IP
命令 docker run -itd -p 5001:5001 --name 镜像名称 --net mynetwork --ip 172.18.0.2 --privileged=true --restart=always -d 镜像名称

三、重启docker、查看容器IP
重启dockers 命令 service docker restart

查看所有容器 命令 docker ps -a

查看容器信息 命令 docker inspect 容器名称

这样容器IP就不会变了

二、镜像启动运行时指定自己的网络IP

 ***********************mysql*******************************************

docker run  -itd -p 3306:3306 --name mysql   --net mynetwork --ip=172.18.0.2 --privileged=true --restart=always    -v /d/docker_data/mysql8/mysql-files:/var/lib/mysql-files -v /d/docker_data/mysql8/log:/var/log/mysql -v /d/docker_data/mysql8/data:/var/lib/mysql -v /d/docker_data/mysql8/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=master$1234 -e TZ=Asia/Shanghai -d mysql

 ***********************redis*******************************************

docker run   --name redis  -p 6379:6379    --net mynetwork --ip=172.18.0.3  --privileged=true --restart=always   -v /D/docker_data/redis/conf/redis.conf:/etc/redis/redis.conf -v /D/docker_data/redis/data:/data/   -d redis redis-server  /etc/redis/redis.conf --appendonly yes

 ***********************jar*******************************************

docker run -itd   -p 48080:48080  --net mynetwork --ip=172.18.0.4  --name=ly_crb   ly_crb   --privileged=true --restart=always  

 ***********************nginx*******************************************

docker run -itd  --name ng    -p 80:80   --net mynetwork --ip=172.18.0.5 --privileged=true --restart=always nginx

docker cp dd51994c870d:/etc/nginx/nginx.conf d:\\docker_data\\nginx\\conf (拷贝文件)

docker run -itd --restart=always --privileged=true --name nginx -p 80:80 -p 443:443  --net=mynetwork  --ip=172.18.0.5   -v /d/docker_data/nginx/cert:/etc/nginx/cert -v /d/docker_data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /d/docker_data/nginx/www:/usr/share/nginx/html -v /d/docker_data/nginx/log:/var/log/nginx nginx:latest

//********************ngingx 配置********************************
 server {
        listen *:80;
        server_name www.szcrb.com;
        root /usr/share/nginx/html/ly_crb;
        location / {
            root /usr/share/nginx/html/ly_crb;
            try_files $uri $uri/ @router;
            index index.html;
        }
        location @router {
            rewrite ^.*$ /index.html last;
        }
    }

*****************************************************************************************************************************************************************************************
-d:表示后台运行
--restart=always:表示自启动
--privileged=true:表示拥有更多的权限
--name 表示容易的命名
-p 宿主机端口和容器端口的映射
-v 宿主机目录和容器目录的映射
###

  • run:运行
  • –restart=always:当docker重启时,该容器也会重新启动
  • -d redis:后台运行redis镜像
  • -p:映射端口号,容器内部和服务器内部关联
  • –appendonly yes:持久化
  • –name docker_redis:启动一个redis并设置docker容器名称为docker_redis
  • -v /root/redis/redis.conf:/etc/redis/redis.conf:将服务器中redis.conf文件映射到docker中
  • -v /root/redis/data:/data:同上
  • redis-server /etc/redis/redis.conf:以加载配置文件方式启动

三、重启docker、查看容器IP
重启dockers 命令 service docker restart

查看所有容器 命令 docker ps -a

查看容器信息 命令 docker inspect 容器名称

这样容器IP就不会变了

posted on 2023-06-17 11:10  zyp_java_net  阅读(1347)  评论(0编辑  收藏  举报

导航