安装docker:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin //查看docker官网
编辑配置:
/etc/docker/daemon.json
配置阿里云镜像加速器
配置本地私有仓库是 加入私有仓库地址
{
"registry-mirrors":["https://lwzoyak5.mirror.aliyuncs.com"],
"insecure-registries":["127.0.0.1:5000"]
}
基本命令
docker version //查看版本
docker images //查看当前镜像列表
docker pull redis:6.0.8 //拉取redis:6.0.8的镜像 不指定版本 默认拉取最新版
docker rmi redis:6.0.8 //删除镜像 -f 参数强制删除
docker search redis //搜索镜像仓库
docker system df //查看空间占用
docker start/stop/restart/kill 实例id/名字 //启动/停止 /重启/强制停止
docker commit -m="描述提交信息" -a="author" 实例ID 包名/镜像名:版本号 //提交实例成为一个新的镜像
docker export 实例 > 文件.tar //实例导出为文件
cat 文件.tar | docker import - 包名/镜像名:版本号 //将备份导入为一个镜像, 作为常规镜像使用.
docker logs 实例ID //查看实例的输出
docker top 实例ID //实例top 信息
docker inspect 实例ID //检视实例
docker exec -it 实例 /bin/bash //进入实例交互shell
docker cp 实例:src_path des_path //宿主间相互复制
docker cp src_path 实例:des_path //宿主间相互复制
docker tag 镜像名:版本号 IP:port/镜像:版本 //将镜像打个对应格式的tag, 方便向私有仓库推送. tag形式包含了私有仓库的地址.
docker push/pull //拉取/推送镜像
搭建私有仓库:
//记得修改 /etc/docker/daemon.json 的"insecure-registries":["ip:port"] 配置安全仓库地址
docker pull registry
docker run -d -p 5000:5000 -v /var/lib/myregistry/:/tmp/registry --privileged=true registry
//启动一个实例
docker run -d -p xx:xx -v /host/path:/docker/path -v /host/path2:/docker/path2 --name=xx --privileged=true -e yy 镜像名 // -d 是后台运行, -p 指定端口映射 -v 指定目录/文件映射 --name 指定实例名称 --privileged=true 给与docker实例权限以便能够操作宿主机目录 -e 给实例的参数, 参考各自的镜像说明.
mysql 主从配置
docker run -d -p 3307:3306 -v /var/app/mysql/mysql-master/conf:/etc/mysql -v /var/app/mysql/mysql-master/data:/var/lib/mysql -v /var/app/mysql/mysql-master/log:/var/log/mysql --name=mysql-master -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6
docker run -d -p 3308:3306 -v /var/app/mysql/mysql-slave/conf:/etc/mysql -v /var/app/mysql/mysql-slave/data:/var/lib/mysql -v /var/app/mysql/mysql-slave/log:/var/log/mysql --name=mysql-slave -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6
create user 'slave'@'%' identified by "123456";
grant replication slave, replication client on *.* to 'slave'@'%';
change master to master_host='192.168.31.173', master_user='slave', master_password='123456', master_port=3307, master_log_file='mysql-bin.000001', master_log_pos=512, master_connect_retry=30;