数据卷
dockerfile
符合规范
docker build
每个命令都是大写,并且至少要跟一个参数
从上到下执行
表示注释
FROM:定制的镜像都是基于 FROM 的镜像
RUN:用于执行后面跟着的命令行命令
以 && 符号连接命令,这样执行后,只会创建 1 层镜像。
ENV
设置环境变量,定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。
格式:
ENV <key> <value>
ENV <key1>=<value1> <key2>=<value2>...
WORKDIR
指定工作目录。
FROM
构建镜像基于哪个镜像
MAINTAINER
镜像维护者姓名或邮箱地址
RUN
构建镜像时运行的指令
CMD
运行容器时执行的shell环境
VOLUME
指定容器挂载点到宿主机自动生成的目录或其他容器
USER
为RUN、CMD、和 ENTRYPOINT 执行命令指定运行用户
WORKDIR
为 RUN、CMD、ENTRYPOINT、COPY 和 ADD 设置工作目录,就是切换目录
HEALTHCHECH
健康检查
ARG
构建时指定的一些参数
EXPOSE
声明容器的服务端口(仅仅是声明)
ENV
设置容器环境变量
ADD
拷贝文件或目录到容器中,如果是URL或压缩包便会自动下载或自动解压
COPY
拷贝文件或目录到容器中,跟ADD类似,但不具备自动下载或解压的功能
ENTRYPOINT
运行容器时执行的shell命令
个人redis启动
docker run -p 6379:6379 -v /home/wu/redis/data:/data -v /home/wu/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf --name Wredis -d redis:6.2 redis-server /usr/local/etc/redis/redis.conf --appendonly yes
个人mysql启动
docker run -p 3306:3306 --name Wmysql -v /home/wu/mysql/conf/:/etc/mysql/ -v /home/wu/mysql/logs:/logs -v /home/wu/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
以挂载日志和数据文件启动mysql
docker run -p 3306:3306 --name wMysql -v /home/wu/mysql/wMysqlLogs:/logs -v /home/wu/mysql/wMysqlData:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker run -p 3307:3306 --name wMysql2 -v /home/wu/mysql/wMysql2Logs:/logs -v /home/wu/mysql/wMysql2Data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
主
配置文件
server-id=1
log-bin=master-binlog
准备账号
GRANT FILE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to 'backup'@'%' identified by '123456';
FLUSH PRIVILEGES;
select user,host from mysql.user;
show master status;
从
配置文件
server-id=1
执行命令
change master to master_host='172.17.0.2',master_port=3306,master_user='backup',master_password='123456',master_log_file='binlog.000002',master_log_pos=154
注意语句中间不要断开,master_port为mysql服务器端口号(无引号),master_user为执行同步操作的数据库账户,“120”无单引号(此处的120就是show master status 中看到的position的值,这里的mysql-bin.000001就是file对应的值)。
start slave;
show slave status
……………………(省略部分)
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
……………………(省略部分)
创建用户并授权
CREATE USER 'test'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'test'@'%';
show variables like "%log_bin%"
查看binlog日志
mysqlbinlog binglog日志文件
show binlog events (in "fileName")