镜像映射
镜像映射 docker -v
1 cd
2 mkdir lqz
3 运行容器,做目录映射
'宿主机中/root/lqz文件夹跟 容器中 /lqz文件加做映射'
docker run -id --name=centos77 -v /root/lqz:/lqz centos:centos7
4 在宿主机的 /root/lqz 下新建 xx.txt
vim xx.txt
5 来到容器内部:看这个文件在不在
cat xx.txt
6 他们是相互影响的:
容器内部修改文件---》会影响外部
外部修改文件---》影响内部
1 有个django容器,做好映射,代码放在宿主机上即可,以后更新了代码,只要重启容器,代码就是最新了
2 运行mysql容器---》mysql配置文件,数据data目录,放在宿主机上做好映射
如果 mysql容器---》表数据,放到容器中---》如果删了容器---》数据库全没了
表数据,放在宿主机上---》把容器删除---》表数据还在----》再启动一个容器做好映射---》数据都还在
端口映射 docker -p
'启动mysql容器 -p 宿主机端口:容器端口'
docker run -id --name=mysql5.7 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
'-e 参数 具体看官网mysql的参数介绍'
yum install net-tools -y
netstat -nlp | grep 3307
-命令行链接:mysql -h 10.0.0.110 -P 3307 -uroot -p
-Navicate: 链接,创建lqz数据库
-python:
docker exec -it mysql5.7 /bin/bash
mysql -uroot -p
show databases;
MySQL部署和端口映射案例
mkdir /mysql
mkdir /mysql/conf.d
mkdir /mysql/data/
vim /mysql/my.cnf
或者
vi/mysql/my.cnf 因为没安装vim
"""
[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 /mysql/data/:/var/lib/mysql -v /mysql/conf.d:/etc/mysql/conf.d -v /mysql/my.cnf:/etc/mysql/my.cnf -p 3307:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
-v /mysql/data/:/var/lib/mysql
-v /mysql/conf.d:/etc/mysql/conf.d
-v /mysql/my.cnf:/etc/mysql/my.cnf
-p 3306:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
docker stop mysql2
docker rm mysql2
docker run -di -v /mysql/data/:/var/lib/mysql -v /mysql/conf.d:/etc/mysql/conf.d -v /mysql/my.cnf:/etc/mysql/my.cnf -p 3307:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7