操作系統:Ubuntu 18.04.6 LTS
核心:Linux 4.15.0-169-generic
架構:x86-64
拉取 MySQL 鏡像#
root@ubuntu:~# docker pull mysql:8.0.31
驗證#
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 8.0.31 3842e9cdffd2 8 days ago 538MB
創建 MySQL 相關掛載目錄#
root@ubuntu:~# mkdir -p mysql/data mysql/conf mysql/log mysql/mysql-files
創建 MySQL 配置文件#
root@ubuntu:~# vim mysql/conf/my.cnf
[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
character-set-server=utf8
default_authentication_plugin=mysql_native_password
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock
[mysql]
default-character-set=utf8
#!includedir /etc/mysql/conf.d/
編輯 MySQL 啟動的 yml 文件#
mysql:
image: mysql:8.0.31
container_name: mysql
restart: always
deploy:
resources:
limits:
memory: 1024m
user: root
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
environment:
MYSQL_ROOT_PASSWORD: root
ports:
- 3306:3306
volumes:
- /opt/mysql/data:/var/lib/mysql:rw
- /opt/mysql/conf/my.cnf:/etc/mysql/my.cnf:rw
- /opt/mysql/log:/var/log/mysql:rw
- /opt/mysql/mysql-files:/var/lib/mysql-files:rw
啟動#
root@ubuntu:~# docker-compose up -d
驗證#
root@ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
49e9b0115a54 mysql:8.0.31 "docker-entrypoint.s…" 10 seconds ago Up 9 seconds 33060/tcp, 0.0.0.0:3006->3306/tcp, :::3006->3306/tcp mysql
進入容器內
root@ubuntu:~# docker exec -it mysql bash
登錄 mysql
bash-4.4# mysql -uroot -p
歡迎來到MySQL監控器。命令以 ; 或 \g 結束。
您的MySQL連接ID是 10
伺服器版本:8.0.31 MySQL Community Server - GPL
版權所有 (c) 2000, 2022, Oracle及/或其附屬公司。
Oracle是Oracle Corporation及/或其附屬公司的註冊商標。其他名稱可能是其各自所有者的商標。
輸入 'help;' 或 '\h' 獲取幫助。輸入 '\c' 以清除當前輸入語句。