首先在linux服务器上安装docker引擎:
登录docker官网参考文档https://docs.docker.com/engine/install/,按照上面步骤安装docker。
安装完成后,在安装docker-compose,步骤如下:
Linux
Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。
运行以下命令以下载 Docker Compose 的当前稳定版本:
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
要安装其他版本的 Compose,请替换 1.24.1。
将可执行权限应用于二进制文件:
$ sudo chmod +x /usr/local/bin/docker-compose
创建软链:
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
测试是否安装成功:
$ docker-compose --version
cker-compose version 1.24.1, build 4667896b
安装好docker-compose以后在Linux上创建三个文件夹,分别是/usr/local/geek/mysql/data(存放数据),/usr/local/geek/mysql/conf/my.cnf(存放自定义配置),/usr/local/geek/mysql/log(存放日志文件),然后再mysql文件夹新增docker-compose.yml,内容如下:
version: '2.2'
services:
mysql:
container_name: mysql
hostname: docker-tool-mysql
#network_mode: "host" #这里走NAT网络模式,故这块代码需注释掉
cpus: "2"
mem_limit: "2G"
environment:
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_USER: 'zhongtao'
MYSQL_PASS: '123456'
image: "docker.io/mysql:5.7" #此处如果想指定mysql版本,可以改为:"docker.io/mysql:5.7"的样式
restart: always
volumes:
- "/usr/local/geek/mysql/data:/var/lib/mysql"
- "/usr/local/geek/mysql/conf/my.cnf:/etc/my.cnf"
- "/usr/local/geek/mysql/log:/var/log/mysql"
ports:
- "3306:3306"
networks:
20190116_aidata_network:
ipv4_address: 81.68.172.91
networks:
20190116_aidata_network:
external: true
在新建的conf文件夹下新增一个my.cnf文件,内容如下:
[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
#skip-grant-tables
#sql_mode = "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
然后跳转到docker-compose.yml所在目录,输入命令:
/usr/local/geek/mysql# docker-compose up -d
即可自动加载并安装部署mysql数据库,然后通过docker命令进入MySQL容器内:
/usr/local/geek/mysql# docker exec -it mysql bash
进入mysql容器后,输入用户名密码登录数据库:
$ mysql -uroot -p123456
进入数据库,对root用户授权和设置新密码,以便后续可以远程登录数据库服务器:
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
> FLUSH PRIVILEGES;