安装MySQL
[vagrant@localhost ~]$ docker pull mysql:5.7
-- snip --
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
[vagrant@localhost ~]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 9cfcce23593a 2 weeks ago 448MB
[vagrant@localhost ~]$ su root
Password:
[root@localhost vagrant]# whoami
root
[root@localhost vagrant]# docker run -p 3306:3306 --name mysql \-->端口映射 取名
> -v /mydata/mysql/log:/var/log/mysql \
> -v /mydata/mysql/data:/var/lib/mysql \
> -v /mydata/mysql/conf:/etc/mysql \
> -e MYSQL_ROOT_PASSWORD=root \
> -d mysql:5.7
eaba8273d559684220da9c3f9f6b5999356880e954262a9249a87b1b2ca35fa0
[root@localhost vagrant]# docker ps (查看启用的容器)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eaba8273d559 mysql:5.7 "docker-entrypoint.s…" 46 seconds ago Up 44 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
[root@localhost vagrant]# docker exec -it mysql /bin/bash
root@eaba8273d559:/# ls /
bin dev entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint-initdb.d etc lib media opt root sbin sys usr
root@eaba8273d559:/# whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql
root@eaba8273d559:/# cd /var/log
root@eaba8273d559:/var/log# ls
alternatives.log apt btmp dpkg.log faillog lastlog mysql wtmp
root@eaba8273d559:/var/log# exit;
exit
打开MySQL Workbench测试:修改MySQL字符集为utf-8:
[root@localhost vagrant]# cd /mydata/
[root@localhost mydata]# ls
mysql
[root@localhost mydata]# cd mysql
[root@localhost mysql]# ls
conf data log
[root@localhost mysql]# cd conf/
[root@localhost conf]# ls
[root@localhost conf]# vi my.cnf
进入my.conf文件设置中,按"i" 复制
[client]
default-character-set=utf-8
[mysql]
default-character-set=utf-8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
按ESC,再加":",再加wq,回车退出(如果不想保存按q即可)
[root@localhost conf]# ls
my.cnf
[root@localhost conf]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eaba8273d559 mysql:5.7 "docker-entrypoint.s…" 40 minutes ago Up 40 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
[root@localhost conf]# docker restart mysql
mysql
[root@localhost conf]# docker exec -it mysql /bin/bash
root@eaba8273d559:/# cd /etc/mysql/
root@eaba8273d559:/etc/mysql# ls
my.cnf
root@eaba8273d559:/etc/mysql# cat my.cnf-->查看my.conf配置文件
[client]
default-character-set=utf-8
[mysql]
default-character-set=utf-8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
root@eaba8273d559:/etc/mysql#
安装Redis
[root@localhost vagrant]# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
8559a31e96f4: Already exists 85a6a5c53ff0: Pull complete b69876b7abed: Pull complete a72d84b9df6a: Pull complete 5ce7b314b19c: Pull complete 04c4bfb0b023: Pull complete Digest: sha256:800f2587bf3376cb01e6307afe599ddce9439deafbd4fb8562829da96085c9c5
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest
[root@localhost vagrant]# mkdir -p /mydata/redis/conf
[root@localhost vagrant]# cd /mydata/
[root@localhost mydata]# ls
mysql redis
[root@localhost mydata]# cd redis/
[root@localhost redis]# ls
conf
[root@localhost redis]# cd conf/
[root@localhost conf]# ls
[root@localhost conf]# touch redis.conf
[root@localhost conf]# docker run -p 6379-6379 -name redis -v /mydata/redis/data:/data \
> -v /mydata/redis/conf/redis.conf:etc/redis/redis.conf \
> -d redis redis-server /etc/redis/redis.conf
unknown shorthand flag: 'n' in -name
See 'docker run --help'.
[root@localhost conf]# docker run -p 6379-6379 --name redis -v /mydata/redis/data:/data \
> -v /mydata/redis/conf/redis.conf:etc/redis/redis.conf \
> -d redis redis-server /etc/redis/redis.conf
docker: Error response from daemon: invalid volume specification: '/mydata/redis/conf/redis.conf:etc/redis/redis.conf': invalid mount config for type "bind": invalid mount path: 'etc/redis/redis.conf' mount path must be absolute.
See 'docker run --help'.
[root@localhost conf]# docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
> -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
> -d redis redis-server /etc/redis/redis.conf
b31f32aaadc1d4b4deefe512b8b14c1e022f2f7ad3e68f844a9b993b0027b052
[root@localhost conf]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b31f32aaadc1 redis "docker-entrypoint.s…" 11 seconds ago Up 9 seconds 0.0.0.0:6379->6379/tcp redis
eaba8273d559 mysql:5.7 "docker-entrypoint.s…" About an hour ago Up 25 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
[root@localhost conf]# pwd
/mydata/redis/conf
[root@localhost conf]# ls
redis.conf
[root@localhost conf]# vi redis.conf
[root@localhost conf]# docker restart redis
redis
[root@localhost conf]# docker exec -it redis redis-cli
127.0.0.1:6379> set aa bb
OK
127.0.0.1:6379> get aa
"bb"
127.0.0.1:6379> exit
[root@localhost conf]# docker restart redis
redis
[root@localhost conf]# docker exec -it redis redis-cli
127.0.0.1:6379> get aa
"bb"
安装Redis Desktop Manager,测试: