docker 命令

1.查看版本

docker -v

11.重启nginx

service nginx reload

2.查看可以安装的PHP工具

docker search php

3.下载想要安装的工具

docker pull phpmyadmin   默认最新
docker pull redis:6.0.8 带版本号

4.安装phpmyadmin,端口9998

//后台守护式启动
docker run -d --name phpmyadmin -p 9998:80 library/phpmyadmin

//前台交互式启动
docker run -it redis:6.0.8

5.查看容器运行情况

docker ps

5-1显示所有容器

docker ps -a

5-2修改容器名称

docker rename abc u2

6.查看容器日志

docker logs 容器ID号

7.开启-停止-杀死容器

docker stop 容器ID号
docker kill 容器ID号
docker start 容器ID号

8.列出本机上的安装的镜像

docker images

 9.启动容器随机分配端口

docker run -d -P phpmyadmin

 10.指定访问端口1234到容器

docker run -d -p 0.0.0.0:1234:80 phpmyadmin

 11.删除容器

# 删除容器
docker rm 容器ID

# 删除所有容器
docker rm $(docker ps -a) 

11.B删除镜像文件

#docker rmi 镜像ID
docker rmi 52b67ab29b74

12.查看镜像容器占有空间

docker system df

 13.使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令

参数说明:
-i:交互式操作
-t:终端
docker run -it centos /bin/bash

 14.查看容器内运行进程

docker top 容器ID

 15.进入容器

#exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止.
docker exec -it 容器ID /bin/bash

#attach是直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。
docker attach 容器ID,#教程是直接进入ubuntu进入的,在测试上进入一直卡着,后期继续了解清楚

 16.复制容器内文件

docker cp 容器id:容器内路径 目的主机路径
docker cp 614d18616b22:/var/www/html /data        #这里复制的是wordpress目录到宿主机服务器的/data目录

 17.备份和还原整个容器

1.docker export 容器ID > wordpress.tar
  docker export 614d18616b22 > wordpress.tar

#导入备份文件,还原容器
2.cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
  cat wordpress.tar | docker import - test/t1:v1

 18.容器中添加所需功能vim编辑器

#先更新我们的包管理工具
apt-get update

#然后安装我们需要的vim
apt-get install vim

 19.commit提交创建新容器

docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像:[标签名]
docker commit -m="vim cmd add ok" -a="read" 1614b741a08a newiso/test:v1.0

 20.啊里云镜像仓库

1. 登录阿里云Docker Registry
$ docker login --username=2751*****@qq.com registry.cn-hangzhou.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在访问凭证页面修改凭证密码。

2. 从Registry中拉取镜像
$ docker pull registry.cn-hangzhou.aliyuncs.com/read2022/itmes_20220615:[镜像版本号]
3. 将镜像推送到Registry
$ docker login --username=2751*****@qq.com registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/read2022/itmes_20220615:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/read2022/itmes_20220615:[镜像版本号]

 21.宿主机和容器共享数据

docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it --privileged=true -v /data:/var/www/test --name=pp centos   #只适用于系统之内共享
docker run -it --privileged=true --volumes-from u1 --name u2 centos  #继承父类容器的共享

 22.Mysql主从复制

1.新建主从服务
  docker run -d -p 3307:3306 --name mysql-master \
  -v /mydata/mysql-master/log:/var/log/mysql \
  -v /mydata/mysql-master/data:/var/lib/mysql \
  -v /mydata/mysql-master/conf:/etc/mysql \
  -e MYSQL_ROOT_PASSWORD=root \
  -d mysql:5.7

2.新建my.cnf
  cd /mydata/mysql-master/conf
  vim my.cnf
    [mysqld]
    ## 设置 server_id,同一局域网中需要唯一
    server_id=101
    ## 指定不需要同步的数据库名称
    binlog-ignore-db=mysql
    ## 开启二进制日志功能
    log-bin=mall-mysql-bin
    ## 设置二进制日志使用内存大小 (事务)
    binlog_cache_size=1M
    ## 设置使用的二进制日志格式 (mixed,statement,row)
    binlog_format=mixed
    ## 二进制日志过期清理时间。默认值为0,表示不自动清理。
    expire_logs_days=7
    ## 跳过主从复制中遇到的所有错误或反指定类型的错误,避免slave端复制中段。
    ## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
    slave_skip_errors=1062


3.重启配置
  docker restart mysql-master


4.进入mysql-master容器
  docker exec -it mysql-master /bin/bash
  mysql -uroot -proot
  mysql> show databases;


5.master容器实例内创建数据同步用户
  CREATE USER 'slave'@'%'IDENTIFIED BY '123456'; //建立用户

  GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'slave'@'%'; //授权


6.新建从服务器3308
  docker run -d -p 3308:3306 --name mysql-slave \
  -v /mydata/mysql-slave/log:/var/log/mysql \
  -v /mydata/mysql-slave/data:/var/lib/mysql \
  -v /mydata/mysql-slave/conf:/etc/mysql \
  -e MYSQL_ROOT_PASSWORD=root \
  -d mysql:5.7


7.进入/mydata/mysql-slave/conf 目录新建my.cnf
  新建my.cnf
  cd /mydata/mysql-slave/conf
  vim my.cnf
    [mysqld]
    ## 设置 server_id,同一局域网中需要唯一
    server_id=102
    ## 指定不需要同步的数据库名称
    binlog-ignore-db=mysql
    ## 开启二进制日志功能,以备Slave作为其它数据库实例的Master时使用
    log-bin=mall-mysql-slave1-bin
    ## 设置二进制日志使用内存大小 (事务)
    binlog_cache_size=1M
    ## 设置使用的二进制日志格式 (mixed,statement,row)
    binlog_format=mixed
    ## 二进制日志过期清理时间。默认值为0,表示不自动清理。
    expire_logs_days=7
    ## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中段。
    ## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
    slave_skip_errors=1062
    ## relay_log配置中断日志
    relay_log=mall-mysql-relay-bin
    ## log_slave_updates表示slave将复制事件写进自己的二进制日志
    log_slave_updates=1
    ## slave设置为只读 (具有super权限的用户除外)
    read_only=1
8.修改完成配置后重启slave实例
  docker restart mysql-slave

9.在主数据库中查看主从同步状态

  mysql>show master status;

10-A.查看容器IP

  docker inspect 容器ID | grep IPAddress

10.进入mysql-slave容器
    docker exec -it mysql-slave /bin/bash
    mysql -uroot -proot
    mysql> show databases;

    change master to master_host='宿主机ip',master_user='slave',master_password='123456',master_port=3307,
    master_log_file='mall-mysql-bin.000001',master_log_pos=617,master_connect_retry=30;

    #master_host:主数据库的IP地址;
    #master_port:主数据库的运行端口;
    #master_user:在主数据库创建的用于同步数据的用户账号;
    #master_password:在主数据库创建的用于同步数据的用户密码;
    #master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;
    #master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取Position参数;
    #master_connect_retry:连接失败重试的时间间隔,单位为秒.

 

12.在从数据库中配置主从复制
  mysql>show slave status \G;
13.在从数据库中开启主从同步
  mysql>start slave;
14.查看从数据库状态发现已经同步
  mysql>show slave status \G;
  #Slave_IO_Running: Connecting #Yes为正常
  #Slave_SQL_Running: Yes

15.主从复制测试
  #主机新建库-使用库-新建表-插入数据,ok
  mysql>create database db001;
  mysql>use db01;
  mysql>create table t1 (id int,name varchar(20));
  mysql>insert into t1 values(1,'z3');
  mysql>select * from t1
  从机使用库-查看记录,ok
  mysql>use db01;
  select * from t1;

 

posted @ 2022-06-13 15:35  快乐的在一起  阅读(108)  评论(0编辑  收藏  举报