安装mysql
用docker安装上mysql,去docker仓库里搜索mysql
1.
sudo docker pull mysql:8.0.20
2.
mkdir -p /mydata/mysql/data
3.
mkdir -p /mydata/mysql/conf
4.
touch /mydata/mysql/my.cnf
5.
vi /mydata/mysql/my.cnf
6.在my.cnf中添加如下信息
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
lower_case_table_names = 1
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
7.# --name指定容器名字 -v目录挂载 -p指定端口映射-e设置mysql参数 -d后台运行
sudo docker run --restart=always -p 3306:3306 --name mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-v /mydata/mysql/my.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.20
8.su root 密码为vagrant,这样就可以不写sudo了
[root@localhost vagrant]# docker ps
CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
6a685a33103fmysql:5.7"docker-entrypoint.s…"32 seconds agoUp 30 seconds0.0.0.0:3306->3306/tcp, 33060/tcpmysql
9.
docker exec -it mysql bin/bash
10.
exit;
因为有目录映射,所以我们可以直接在镜像外执行
vi /mydata/mysql/conf/my.conf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[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
保存(注意评论区该配置不对,不是collection而是collation)
docker restart mysql
如何通过其他工具链接ssh
修改vi /etc/ssh/sshd_config
修改 PasswordAuthentication yes
systemctl restart sshd.service 或 service sshd restart
连接192.168.56.10:22端口成功,用户名root,密码vagrant
也可以通过vagrant ssh-config查看ip和端口,此时是127.0.0.1:2222
Redis
如果直接挂载的话docker会以为挂载的是一个目录,所以我们先创建一个文件然后再挂载,在虚拟机中。
# 在虚拟机中
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker pull redis
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
# 直接进去redis客户端。
docker exec -it redis redis-cli
set a b
get a
默认是不持久化的。在配置文件中输入appendonly yes,就可以aof持久化了。修改完docker restart redis,docker -it redis redis-cli
vi /mydata/redis/conf/redis.conf
# 插入下面内容
appendonly yes
保存
docker restart redis
设置redis容器在docker启动的时候启动
docker update redis --restart=always
安装nginx
安装nginx为P124的内容
docker pull nginx:1.10
# 随便启动一个nginx实例,只是为了复制出配置
cd /mydata
mkdir /mydata/nginx
docker run -p 80:80 --name nginx -d nginx:1.10
docker container cp nginx:/etc/nginx .
然后在外部 /mydata/nginx 有了一堆文件
# 停掉nginx
docker stop nginx
docker rm nginx
mv nginx conf
mkdir nginx
mv conf nginx/
# 创建新的nginx
docker run -p 80:80 --name nginx-81 \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10
docker run --network=host --name nginx-81 \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10
docker update nginx-81--restart=always
测试
cd /mydata/nginx/html/
vi index.html
随便写写
【mysql|Docker安装mysql、redis、nginx】测试 http://192.168.56.10:80
推荐阅读
- docker|docker-compose 安装nginx、php、redis、mysql
- SpringBoot|快速从零搭建一个SpringBoot Web项目
- Docker-Compose 部署Gitlab
- redis
- 如何解决SQLSTATE [42000](语法错误或访问冲突:1118行大小太大(8126)在MySQL 5.7中)
- php|PHP对数据库的增删改查
- SQL数据库的增删改查
- 如何解决MySQL异常SQLSTATE [HY000](常规错误:1364字段”field_name”没有默认值)
- 如何使用MySQL Workbench将MS SQL Server数据库(从SQL Server Management Studio)迁移到MySQL