前言:由于Docker部署容器时,没有指定IP,当机器重启后,容器的IP会变化,所以在创建容器的时候,最好能固定IP;同时,在Ubuntu系统中,每次执行命令,都需要root权限,命令需要加sudo标识,可以设置为免sudo执行docker命令。

1. 创建自定义网络,可以在创建容器的时候,使用该网络固定ip

  • 输入命令:sudo docker network create --subnet=172.18.0.0/16 mynetwork

  • 三台虚拟机分别创建:

    Ubuntu-1:sudo docker network create --subnet=172.19.0.0/16 mynetwork

    Ubuntu-2:sudo docker network create --subnet=172.20.0.0/16 mynetwork

2. 免sudo使用docker命令

  • 如果还没有 docker group 就添加一个:

    $ sudo groupadd docker

  • 将用户加入该 group 内。然后退出并重新登录就生效啦

    参考命令:$ sudo gpasswd -a ${USER} docker

    $ sudo gpasswd -a xujk docker

  • 重启服务:

    sudo service docker restart

    group或者重启X会话

    newgrp - docker或者pkill X

3. 创建mysql容器+挂载(主机ip: 192.168.231.132)

  • 拉取Mysql镜像:

    docker pull mysql:5.7.24

  • 输入命令构建Mysql容器:

    sudo docker run -d --restart=always --privileged=true --name mysql01 --net mynetwork --ip 172.18.0.2 -v /home/xujk/Work/Docker/Mysql/mysql01/conf/:/etc/mysql/ -v /home/xujk/Work/Docker/Mysql/mysql01/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.24

    参数说明:

    --restart=always: 当Docker 重启时,容器会自动启动。

    --privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限

    -v /opt/mysql/conf.d/my.cnf:/etc/my.cnf:映射配置文件

    -v /opt/mysql/data/:/var/lib/mysql:映射数据目录

    --net mynetwork --ip 172.18.0.2:指定使用网络名,及固定ip地址

    注意:如果要挂载配置文件的话,必须要先创建文件(my.cnf),然后映射到本地目录,如果不这样操作的话,他会把my.cnf当成一个目录来映射,就会报错:

  • 使用数据库客户端连接工具,连接Mysql数据库测试:

    由此可见,mysql数据库容器创建成功,可以提供服务
  • Docker查看容器ip
    docker inspect 容器ID | grep IPAddress
    docker inspect --format=' {{.NetworkSettings.IPAddress}}' mysql01

最新文章

  1. CAS Client集群环境的Session问题及解决方案
  2. 圣诞老人去哪?Power BI告诉你
  3. BestCoder Round #40
  4. 【随笔】使用mOnOwall封禁某一个ip
  5. Python可变参数
  6. Action的动态调用方法
  7. DFS(剪枝) POJ 1011 Sticks
  8. 我的conky配置
  9. JavaScript 要点(十六)RegExp 对象
  10. javascript不同数据类型的转换
  11. CF #552(div3)G 最小lcm
  12. Python——Django运行问题
  13. git中Please enter a commit message to explain why this merge is necessary.
  14. 组件的三大属性state,props,refs与事件处理
  15. 修复 Tween.JS 的 onStop 设置无效
  16. 1000. A-B
  17. STL - 容器 - vector简单应用
  18. 十六、curator recipes之DistributedIdQueue
  19. C语言——链式存储实现栈的基本运算算法
  20. JavaScript脚本的执行原理?

热门文章

  1. NoSql非关系型数据库之MongoDB应用(二):安装MongoDB可视化工具
  2. com.rabbitmq.client.impl.Frame.readFrom(Frame.java:95)
  3. MRCTF (re和crypto)wp
  4. TestComplete 64位和32位之间的区别
  5. 使用Hugo框架搭建博客的过程 - 主题配置
  6. F5负载均衡_monitors(健康检查)
  7. 详解Window10下使用IDEA搭建Hadoop开发环境
  8. 在deeping上安装mariadb
  9. 电子物流中的EDI 应用
  10. 在docker for windows建立mssql容器后,ssms连接mssql出现错误号码18456的问题