docker创建mysql容器(docker创建数据库)

http://www.itjxue.com  2023-02-15 12:34  来源:未知  点击次数: 

如何交互式地创建一个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的文件目录下执行

(责任编辑:IT教学网)

更多