Docker学习笔记

What is docker?

Docker is a world's leading software containerization platform!

Linux系统的一些基本操作

(1) ctrl c: 取消命令,并且换行
(2) ctrl u: 清空本行命令
(3) tab键:补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项
(4) ls: 列出当前目录下所有文件,蓝色是文件夹,白色是普通文件,绿色的是可执行文件
(5) pwd: 显示当前路径
(6) cd XXX: 进入XXX目录下, cd .. 返回上层目录
(7) cp XXX YYY: 将XXX文件复制成YYY,XXX和YYY可以是一个路径,比如../dir_c/a.txt,表示上层目录下的dir_c文件夹下的文件a.txt
(8) mkdir XXX: 创建目录XXX
(9) rm XXX: 删除普通文件;  rm XXX -r: 删除文件夹
(10) mv XXX YYY: 将XXX文件移动到YYY,和cp命令一样,XXX和YYY可以是一个路径;重命名也是用这个命令
(11) touch XXX:创建一个文件
(12) cat XXX:展示文件XXX中的内容
(13) 复制文本:windows/Linux下:Ctrl + insert,Mac下:command + c
(14) 粘贴文本:windows/Linux下:Shift + insert,Mac下:command + v

Docker安装以及启动

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

在centos命令行中删除旧版本的docker,如果没有安装则会报告没有安装。

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装软件包,设置存储库。

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装最新版本docker,一直按y下一步即可。

sudo systemctl start docker

启动docker

sudo docker run hello-world

通过运行映像来验证Docker是否安装成功。

搭建mysql在docker中的环境(镜像)

docker search mysql

 查询mysql镜像,可以先配置镜像加速器,进入阿里云复制即可。

docker pull mysql

默认default是latest‘

docker image ls

 查看镜像库,看看是否下载成功

搭建mysql在docker中的环境(容器)

linux创建文件夹:/usr/local/software/mysql/3306

此处3306作为我们的主机,我们需要在3306下创建conf和data文件夹,并在conf文件夹中导入my.cnf配置文件

my.cnf:

# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 
#
# The MySQL  Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
 
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
default_authentication_plugin=mysql_native_password
 
# Custom config should go here
!includedir /etc/mysql/conf.d/
 
server_id=200                 #服务器id
log_bin=mysql-bin             #binlog名称
binlog_format=row             #binlog的格式
 

我们可以通过pwd命令查看当前路径,也可以通过tree命令查看当前路径的细节分支

tree命令的安装方法:
yum -y install tree

由于my.cnf文件需要修改,因此需要进入vim进行修改

vim my.cnf
创建mysql_3306的容器

docker run命令

docker run 命令
-i:以交互模式运行容器
-t:为容器重新分配一个伪输入终端
--name :容器名称
--privileged: 设置容器公开权限(默认为true)
-p :映射端口 linux端口: 容器内置端口(mysql默认端口为3306)
-v : linux挂载文件夹/文件和容器内路径的映射
-e: 容器的环境变量(设置mysql默认用户名&密码)
-d: 后台运行容器,并返回容器ID

docker run -it \
--name mysql_3306 \
--privileged \
-p 3306:3306 \
-v /usr/local/software/mysql/3306/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/software/mysql/3306/data:/var/lib/mysql \
-v /usr/local/software/mysql/3306/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql

查看容器,可通过

docker ps

docker ps -a

来检验容器run是否成功

在容器中运行mysql客户端
mysql -u用户名 -p密码
开放指定端口和重新加载防火墙
//开放指定端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
//重新加载防火墙
firewall-cmd --reload
//查看开放的端口号,配置好从机后可以会一起显示
firewall-cmd --zone=public --list-ports
在navicat中连接创建的容器

主机地址写ip config中的ip地址

mysql的从配置

在mysql容器中查看binlog是否开启
show variables LIKE ‘log_%’

log_bin状态为ON为开启

在目录中查看日志文件
cd /var/lib/mysql
ls
建立从用户
//创建用户slave
create user 'slave'@'%' indentified with mysql_native_password by '123456';
//给用户授权
grant repulication slave, replication client on *.* to 'slave'@'%';
//应用授权
flush privileges;
查询master状态
show master status;

可查看binlog文件和日志文件的起始位置

推出容器查看master容器内部地址
docker ispect mysql_3306 |grep IPA
按之前的顺序新建从容器的conf和data文件夹,复制my.cnf文件到donf中
在my.cnf文件中修改内容
server_id=210
log_bin=mysql-slave01-bin
relay_log=wnhz-relay-bin
read_only=1
创建运行从容器
docker run -it \
--name mysql_3310 \
--privileged \
-p 3310:3306 \
-v /usr/local/software/mysql/3310/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/software/mysql/3310/data:/var/lib/mysql \
-v /usr/local/software/mysql/3310/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql

创建成功后会显示从容器的id

进入从容器修改从服务器与master的关联
change master to
master_host='之前查询到的master的内部地址',
master_user='slave',
master_password='master配置的密码',
MASTER_LOG_FILE='master的logbin文件名',
MASTER_LOG_POS=master日志文件的起始位置;
开启slave
start slave;
查询slave状态
show slave status \G;
当Slave_IO_Running和Slave_SQL_Running都显示为yes则配置成功
重复master中的开放指定端口,重载防火墙,以及查看开放的端口号,此时会显示从容器和主容器的端口号。
测试:在mysql_3306建立的数据库,在mysql_3310会同步显示。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值