docker创建mysql容器(docker创建数据库)
如何交互式地创建一个Docker容器
docker跟宿主机交互的是通过原生网络实现的。当Docker进程启动之后,它会配置一个虚拟的网桥叫docker0在宿主机上。这个接口允许Docker去分配虚拟的子网给即将启动的容器们。这个网桥在容器内的网络和宿主机网络之间将作为接口的主节点。Docker容器启动后,将创建一个新的虚拟接口并分配一个网桥子网内的IP地址。这个IP地址嵌在容器内网络中,用于提供容器网络到宿主机docker0网桥上的一个通道。Docker自动配置iptables规则来放行并配置NAT,连通宿主机上的docker0,就可以访问宿主机的mysql数据文件了。
Ubuntu Docker 安装和使用
Docker 划分为CE 和EE。CE 即社区版(免费,支持周期三个月),EE 即企业版,强调安全,付费使用。
在Ubuntu系统中安装较为简单,官方提供了脚本供我们进行安装。
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把Docker CE 的Edge版本安装在系统中。
启动Docker CE
建立docker 用户组
默认情况下,docker 命令会使用Unix socket 与Docker 引擎通讯。而只有root 用户和docker 组的用户才可以访问Docker 引擎的Unix socket。出于安全考虑,一般Ubuntu系统上不会直接使用root 用户。因此,更好地做法是将需要使用docker 的用户加入docker用户组。
注销当前用户,重新登录Ubuntu,输入docker info,此时可以直接出现信息。
配置国内镜像加速
在/etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
重新启动服务
测试
我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:
各个参数解析:
-t: 在新容器内指定一个伪终端或终端。
-i: 允许你对容器内的标准输入 (STDIN) 进行交互。
我们可以通过运行 exit 命令或者使用 CTRL+D 来退出容器。
使用以下命令创建一个以进程方式运行的容器
二、使用Docker安装 MySQL
用 docker search mysql 命令来查看可用版本:
2、拉取 MySQL 镜像
这里我们拉取官方的最新版本的镜像:
3、查看本地镜像
使用以下命令来查看是否已安装了 mysql:
4、运行容器
安装完成后,我们可以使用以下命令来运行 mysql 容器:
大小写敏感
参数说明:
-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
使用docker exec进入Docker容器
从容器里面拷文件到宿主机
docker cp mysql-5.7:/etc/mysql/ /home
从宿主机拷文件到容器里面
docker cp /home/s/my.cnf mysql-5.7:/etc/mysql/
大小写敏感修改
/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务 0敏感 1不敏感
开启远程连接
5、安装成功
通过 docker ps 命令查看是否安装成功:
6、连接
mysql -u root -P3308 -h 127.0.0.1 -p
docker-compose构建cmdb联合容器项目
该文件构建了五个容器 分别为: cmdb_server 、 mysql_server 、 redis_server 、 rabbitmq_server 、 nginx_server 容器
在docker-cmdb文件夹下创建了五个文件夹 (cmdb、mysql、redis、rabbitmq、nginx)
cmdb容器文件目录下有三个必要文件:
此文件可以通过如下命令得到:
3. Dockerfile: 用来构建cmdb项目的docker
内容如下:
mysql容器文件下有两个必须文件:
2. Dockerfile: Dockerfile文件内容如下
1. allstatic: 所有的cmdb项目所需的静态文件
3.Dockerfile: 文件内容请参考gitlab中
文件结构同mysql结构,其中有个run.sh是为了创建rabbitmq中用户的,目前由于只是测试docker-compose使用,并未使用该脚本,若有兴趣,可做进一步研究。
在有docker-compose的文件目录下执行