1.mysql部署
# 将data路径、配置文件路径、配置文件分别映射到容器中。但是我们目前没有文件夹,首先在home路径下创建文件夹:
mkdir /home/mysql
mkdir /home/mysql/conf.d
mkdir /home/mysql/data/
# 然后创建my.cnf并且编辑,将以下内容复制进去并且保存:
[client]
default-character-set=utf8
[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
然后将配置文件进行映射:
docker run -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 1434:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# 冒号后面的为容器上的路径


当我们在本地操作增加一个库,这个库也会同步到data目录下:


进入到该mysql容器中:
docker exec -it 0f840dff7e69 /bin/bash
进入到mysql中:
mysql -uroot -p123456

然后我们现在先停止,再删除容器。但是当我进入到/home/mysql/data目录下,我们的数据文件(库、表)都还在:
docker stop 0f840dff7e69 # 停止容器
docker rm 0f840dff7e69 # 删除容器

这时我们只需要重新执行上面的命令,执行同样的配置,再次开启一个容器,做好目录映射,数据都还在:


2.nginx部署
1.拉取并且运行镜像
docker run -id --name nginx -p 80:80 nginx
