戦闘のドッカーシリーズ:3インストールMariaDB

環境

[root@centos181001 ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)

[root@centos181001 ~]# docker -v
Docker version 18.09.1, build 4c52b90

ステップ1:検索とプルは公式MariaDBをミラーリング

https://hub.docker.com/_/mariadb

信頼できる:Ubuntuのに基づいて、

### 搜索镜像
docker search mariadb

### 拉取最新镜像
docker pull mariadb

### 拉取指定版本镜像
docker pull mariadb:5.5.63-trusty

### 查看拉取的镜像
docker image ls
docker image ls mariadb

ステップ2:使用イメージ

1. MariaDB

docker run --rm --name some-mariadb -e MYSQL_ROOT_PASSWORD=xiaoliu -d mariadb:5.5.63-trusty

    MYSQL_ROOT_PASSWORD=my-secret-pw    指定MariaDB数据库的root密码


    #### 进入容器并操作数据库
    docker exec -it some-mariadb bash
    mysql -uroot -pxiaoliu
    show databases;

2.スタートと外部接続を許可するようにMariaDB 3306ポートを解放します

docker run --rm --name some-mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=xiaoliu -d mariadb:5.5.63-trusty

    #### 1.宿主机安装MariaDB客户端连接容器内数据库实例
    yum install -y mariadbnetst
    mysql -h127.0.0.1 -uroot -pxiaoliu

    #### 2.宿主机安装mycli并连接mariadb
    #### Mycli是一个基于Python开发的MySQL命令行客户端工具,具有自动完成和语法突出显示功能。
    yum install -y epel-release 
    yum install -y python-pip python-devel
    pip install mycli

    mycli -h localhost -u root -p xiaoliu
    mycli -h 127.0.0.1 -u root -p xiaoliu
    mycli -h 11.11.11.61 -u root -p xiaoliu

    #### 3.也可以在外部,使用 Navicat 工具连接数据库,IP地址使用宿主机的IP地址

3.カスタムのmy.cnf

プロフィールパス:

/etc/mysql/my.cnf

/etc/mysql/conf.d/*.cnf

#### 1.首先运行一个临时容器
docker run --rm --name tmp-mariadb -e MYSQL_ROOT_PASSWORD=xiaoliu -d mariadb:5.5.63-trusty

#### 2.从运行的容器里将配置文件copy到本地
docker cp tmp-mariadb:/etc/mysql/my.cnf /home/mariadb/

#### 3.删除这个临时容器
docker rm -f tmp-mariadb

#### 4.编辑配置文件后使用Dockerfile重新建立新镜像即可。
$ docker run --name some-mariadb -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mariadb:tag

4.なし設定ファイルCNF

#### 许多选项可以通过参数传递给服务器,而可以不自定义my.cnf
#### 比如要更改所有表的默认编码和排序规则,可以使用以下命令启动容器
docker run --name some-mariadb 
            -e MYSQL_ROOT_PASSWORD=my-secret-pw 
            -d mariadb:5.5.63-trusty 
            --character-set-server=utf8mb4 
            --collation-server=utf8mb4_unicode_ci


    #### 查看支持选项完整列表
    docker run -it --rm mariadb:5.5.63-trusty --verbose --help

5. docker stack deployまたはdocker-compose

#### 1.安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" 
     -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

#### 2.创建stack.yml文件
cat <<EOF >stack.yml
# Use root/example as user/password credentials
version: '3.1'

services 大专栏  Docker系列之实战:3.安装MariaDB:

  db:
    image: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080
EOF

#### 3.执行以下任意命令
docker stack deploy -c stack.yml mariadb
docker-compose -f stack.yml up

#### 4.等待他完全初始化并打开浏览器测试
http://11.11.11.61:8080

ドッカーでログをチェックしてください6。

docker logs some-mariadb

7.サポートされている変数

開始mariadb-time画像を、それをすることによって得ることができるdocker run設定MariaDBインスタンスを調整するために、コマンドラインで一つ以上の環境変数を渡します。データベースを使用する場合は、すでにコンテナを起動するためにデータディレクトリが含まれていることに注意してください、次の変数のいずれかが任意の効果を持っていないだろうしてください:コンテナの起動時の任意の既存のデータベースは変更されません。

MYSQL_ROOT_PASSWORD 必需,用来指定MariaDB ``root``密码
MYSQL_DATABASE      可选,允许您指定要在映像启动时创建的数据库的名称。
                    如果提供了用户/密码(见下文),则该用户将被授予对该数据库的超级用户访问权限(对应于GRANT ALL)。
MYSQL_USER, MYSQL_PASSWORD  可选,可以结合使用来创建新用户并设置该用户的密码。
                            此用户将被授予MYSQL_DATABASE变量指定的数据库的超级用户权限(参见上文)。
                            这两个变量都是创建用户所必需的。

MYSQL_ALLOW_EMPTY_PASSWORD  可选,设置为yes允许以root用户的空密码启动容器。
MYSQL_RANDOM_ROOT_PASSWORD  可选,设置yes为为root用户生成随机初始密码(使用pwgen)。
                            生成的root密码将打印到stdout(GENERATED ROOT PASSWORD: .....)。

8.Docker秘密

環境変数を介して機密情報を通信する別の方法として、_FILEそれは、以前に記載されている変数の環境に取り付けることができるので、これらの変数の初期化コンテナ積載値からスクリプトファイルが存在します。

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-root -d mariadb:tag

    支持以下选项:
    MYSQL_ROOT_PASSWORD
    MYSQL_ROOT_HOST
    MYSQL_DATABASE
    MYSQL_USER
    MYSQL_PASSWORD.

9.データの永続化

#### 1.在主机系统(容器外部)上创建一个数据目录,并将其挂载到容器内可见的目录中。
mkdir /home/data

#### 2.启动容器
docker run --name some-mariadb -v /home/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xiaoliu -d mariadb

#### 3.创建测试数据
create database test;
use test; 
create table linux(username varchar(15) not null,password varchar(15) not null);
insert into linux values ('XiaoMing', 'xiaoliu');
insert into linux values ('XiaoHong', '12346'), ('HongHong', '12346');
commit;

#### 4.停止容器后再启动容器或者删除容器后再使用以下命令启动一个新的容器,之前的数据都会存在。
docker run --name some-mariadb -v /home/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xiaoliu -d mariadb

10. [データベースのバックアップ

docker exec some-mariadb sh 
            -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' 
            > /some/path/on/your/host/all-databases.sql

あなたは追加のコンテナを行うことができるように、コンテナの下に、このような別のスタートは、MySQLのコンテナに接続することができます(未完成)

docker run --name some-app --link some-mariadb:mysql -d application-that-uses-mysql

测试:
docker pull centos
docker run --rm -it --link some-mariadb:mysql centos bash
yum install -y mariadb

おすすめ

転載: www.cnblogs.com/lijianming180/p/12041310.html