一.安装docker(离线安装)

1.上传并解压安装包,可点此下载

tar -Pzxvf docker-19.03.8.tgz
cp docker/* /usr/bin/

2.注册docker服务为系统服务

cat <<EOF >> /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF

3.设置docker服务文件权限

# 设置文件权限
chmod +x /etc/systemd/system/docker.service

4.配置容器存储地址(可选)

mkdir -p /etc/docker
vim /etc/docker/daemon.json

放入以下内容

{
  "data-root": "/data/docker"
}

注:以上文件将docker的容器存放位置设置为/data/docker/,此目录可修改或删除,若使用请确保该目录存在

重载配置文件

systemctl daemon-reload

二.启动docker

1.启动docker

systemctl start docker

2.设置开机自启

systemctl enable docker.service

3.验证

systemctl status docker

4.查看版本

docker -v

5.配置国内镜像源

vim /etc/docker/daemon.json
{
  "data-root": "/data/docker",
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

若使用私有仓库地址(harbor、nexus),请添加如下内容到daemon.json

"insecure-registries": ["IP:port"]

注:daemon.json修改后需要重载

systemctl daemon-reload
systemctl restart docker

三.安装docker-compose(离线安装)

1.github下载官方安装包,可以点此跳转

2.移动安装包

sudo cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose

3.授权docker-compose权限

sudo chmod +x /usr/local/bin/docker-compose

4.查看版本

docker-compose -v

四.部署MySQL

1.创建存放目录

cd /data
mkdir docker-compose && cd docker-compose
mkdir mysql && cd mysql

2.创建挂载目录

cd /data/docker-compose/mysql
mkdir -p /data/docker-compose/mysql/data
mkdir -p /data/docker-compose/mysql/config

3.新建配置文件

vim /data/docker-compose/mysql/config/my.cnf

放入以下内容

[client]
port = 3306
default-character-set = utf8mb4

[mysqld]
# 基础配置
user = mysql
port = 3306
basedir = /usr
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
pid-file = /var/run/mysqld/mysqld.pid
skip-name-resolve
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

# 字符集
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

# 连接数
max_connections = 1000
max_connect_errors = 10000
wait_timeout = 600
interactive_timeout = 600

# 日志配置
log_error = /var/log/mysql/error.log

# 慢查询日志
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 1
log_queries_not_using_indexes = 1

# 通用查询日志(可选)
# general_log = 1
# general_log_file = /var/log/mysql/mysql-general.log

# 二进制日志(可用于主从复制或数据恢复)
# log-bin = mysql-bin
# binlog_format = ROW
# server-id = 1

# InnoDB 优化
innodb_file_per_table = 1
innodb_buffer_pool_size = 512M
innodb_log_file_size = 128M
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT

# 时间
default_time_zone = '+8:00'

[mysql]
default-character-set = utf8mb4

4.编写docker-compose文件

vim /data/docker-compose/mysql/docker-compose.yml

放入以下内容

# 放入以下内容
version: '3'
services:
  mysql:
    image: mysql:8.0.31
    restart: always
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_LOWER_CASE_TABLE_NAMES: 1
      TZ: Asia/Shanghai
    ports:
      - 3306:3306
    volumes:
      - /data/docker-compose/mysql/data:/var/lib/mysql
      - /data/docker-compose/mysql/config/my.cnf:/etc/mysql/my.cnf
    command:
      --max_connections=1000
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password

5.启动mysql容器

cd /data/docker-compose/mysql/
docker-compose up -d