DockerDocker
最新完整代码/home/www
[root@CentOS www]# pwd
/home/www
[root@CentOS www]# ls -l
total 12
drwxr-xr-x 5 root root  182 Apr 23 09:44 back-end
drwxr-xr-x 6 root root  214 Apr 23 09:44 front-end
-rw-r--r-- 1 root root 1104 Apr 23 09:44 LICENSE
-rw-r--r-- 1 root root 5389 Apr 23 09:44 README.md
1. MySQL 容器
MySQLUTF-8
[root@CentOS www]# mkdir -p $PWD/docker/mysql/conf.d
[root@CentOS www]# vim $PWD/docker/mysql/conf.d/custom.cnf
内容如下:

[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
skip-character-set-client-handshake
utf8_general_ciMadmanmadmanutf8_binutf8_general_cs
配置文件数据目录
[root@CentOS www]# docker run -d \
  --name mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -e MYSQL_DATABASE=madblog \
  -e MYSQL_USER=testuser \
  -e MYSQL_PASSWORD=password \
  -p 3306:3306 \
  --rm \
  -v $PWD/docker/mysql/conf.d:/etc/mysql/conf.d \
  -v $PWD/docker/mysql/data:/var/lib/mysql \
  mysql:5.6
链接mysql-server-hmysql-server
[root@CentOS www]# docker run -it --link mysql:mysql-server --rm mysql:5.6 mysql -hmysql-server -utestuser -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.25 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| madblog            |
+--------------------+
2 rows in set (0.00 sec)

mysql> quit
Bye
2. Redis 容器
[root@CentOS www]# docker run -d \
  --name redis \
  -p 6379:6379 \
  --rm \
  -v $PWD/docker/redis/data:/data \
  redis redis-server --appendonly yes
redis-server --appendonly yesRedis$PWD/docker/redis/data/data

测试连接:

[root@CentOS www]# docker run -it --link redis:redis-server --rm redis redis-cli -h redis-server
redis-server:6379> keys *
(empty list or set)
redis-server:6379> quit
3. Elasticsearch 容器
ikik
# 1. 启动容器
[root@CentOS www]# docker pull docker.elastic.co/elasticsearch/elasticsearch:7.0.0
[root@CentOS www]# docker run -d \
  --name elasticsearch \
  -p 9200:9200 \
  -p 9300:9300 \
  -e "discovery.type=single-node" \
  -e ES_JAVA_OPTS="-Xms256m -Xmx256m" \
  docker.elastic.co/elasticsearch/elasticsearch:7.0.0

# 2. 安装 IK 分词器
[root@CentOS www]# docker exec -it elasticsearch /bin/bash
[root@da774b5b5d99 elasticsearch]# elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.0.0/elasticsearch-analysis-ik-7.0.0.zip
.0.0.zip-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.0.0/elasticsearch-analysis-ik-7.0.0.zip
[=================================================] 100%?? 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed analysis-ik
[root@da774b5b5d99 elasticsearch]# exit
exit

# 3. 保存为新的镜像
[root@CentOS www]# docker commit elasticsearch my-elasticsearch-ik
sha256:65cca25b877d7c904c7d3b8aa1e36edd1c20e79f614e052a0918eed163f047ad

# 4. 删除容器
[root@CentOS www]# docker rm -f elasticsearch 
elasticsearch

启动我们自己的镜像: