一、docker的安装
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,就是centos7版本以上
uname -r
2、确保 yum 包更新到最新
yum -y update
3、卸载老的docker
yum remove -y docker*
4、安装需要的工具软件包, yum-util
yum install -y yum-utils
5、设置阿里云的镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
6、查看yum 中所有docker的版本
yum list docker-ce --showduplicates | sort -r
7、安装docker,选择稳定版本
yum install -y docker-ce-3:20.10.1-3.el7.x86_64 # 这是指定版本安装
8、可以把docker加入开机启动
systemctl start docker && systemctl enable docker
systemctl restart docker
9、查看docker的版本
docker version
10、设置docker的镜像为阿里云
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://wy7ljykn.mirror.aliyuncs.com"]
}
二、docker的使用
例如安装mysql
1、镜像文件的搜索
docker search mysql
2、下载镜像到本地
docker pull mysql:5.7
查看本地镜像
docker images
3、删除镜像
docker rmi mysql
删除所有镜像
docker rmi $(docker images -q)
4、运行
docker run -d -p 91:80 nginx
docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker run -p 3307:3306 --name mysql \
-v /mysql/conf:/etc/mysql \
-v /mysql/logs:/var/log/mysql \
-v /mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
show variables like 'datadir'; 查看数据文件位置
注意 -v 是目录映射 宿主机目录 映射到 容器目录
进入容器
docker exec -it f0b1c8ab3633 /bin/bash
5、查看运行中的容器
docker ps 查看运行中的容器
docker ps -a 显示所有容器
6、停止容器
docker stop 容器id
7、删除容器
docker rm f0b1c8ab3633
8、可以查看容器启动日志
docker logs contenterid 查看容器启动日志,
9、查看docker容器资源使用情况
docker stats
三、docker 镜像的制作
1、编写dockerfile文件
vim Dockerfile
FROM nginx
RUN echo '<h1>This is my Nginx!!!</h1>' > /usr/share/nginx/html/index.html
2、构建镜像
docker build -t nginx:sleep -f Dockerfile ./
四、docker 搭建mysql 主从服务器
1、第一步
在服务器上建立目录
mkdir -p /mysqldemo/master/config/
mkdir -p /mysqldemo/master/data/
vim /mysqldemo/master/config/my.cnf
mkdir -p /mysqldemo/slave/config
mkdir -p /mysqldemo/slave/data/
vim /mysqldemo/slave/config/my.cnf
主服务器配置文件
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
datadir = /var/lib/mysql/data
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 100G
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 4K
read_buffer_size = 768K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
query_cache_size = 16M
tmp_table_size = 32M
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
explicit_defaults_for_timestamp = true
#skip-name-resolve
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
server-id = 1
log-bin=mysql-bin
binlog-do-db=sleep
binlog_format=mixed
expire_logs_days = 10
slow_query_log=1
slow-query-log-file=/var/run/mysqld/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on
early-plugin-load = ""
innodb_data_home_dir = /var/lib/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/data
innodb_buffer_pool_size = 128M
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 2
innodb_write_io_threads = 2
[mysqldump]
quick
max_allowed_packet = 500M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 768K
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
从库服务器配置文件
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
datadir = /var/lib/mysql/data
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 100G
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 4K
read_buffer_size = 768K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
query_cache_size = 16M
tmp_table_size = 32M
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
explicit_defaults_for_timestamp = true
#skip-name-resolve
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
server-id = 2
#log-bin=mysql-bin
relay-log-index=edu-mysql-relay-bin.index
relay-log=edu-mysql-relay-bin
binlog_format=mixed
expire_logs_days = 10
slow_query_log=1
slow-query-log-file=/var/run/mysqld/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on
early-plugin-load = ""
innodb_data_home_dir = /var/lib/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/data
innodb_buffer_pool_size = 128M
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 2
innodb_write_io_threads = 2
[mysqldump]
quick
max_allowed_packet = 500M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 768K
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
2、拉取镜像并启动
docker pull mysql:5.7
#搭建主服务器
docker run --name mysql_master -p 3308:3306 --privileged=true \
-v /mysqldemo/master/config/my.cnf:/etc/mysql/my.cnf \
-v /mysqldemo/master/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
#搭建从服务器
docker run --name mysql_slave -p 3309:3306 --privileged=true \
-v /mysqldemo/slave/config/my.cnf:/etc/mysql/my.cnf \
-v /mysqldemo/slave/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
3、在主服务器上建立同步用户
GRANT ALL PRIVILEGES ON *.* TO 'slave'@'%' IDENTIFIED BY '123456'
在主服务器上 创建数据库
create database sleep;
4、在从服务器上面
mysql -u root -p;
#设置同步主节点:
CHANGE MASTER TO MASTER_HOST='172.17.0.3', MASTER_PORT=3306, MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=154;
#开启
start slave;
停止从服务命令:stop slave;
重置主节点命令:reset master;
查看从服务器状态:
show slave status\G;
浙公网安备 33010602011771号