本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
安装过程
官方脚本安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
设置开机启动
systemctl enable docker
systemctl is-enabled docker # 检查设置状态
拉取mysql镜像
docker pull mysql:latest
查看本地镜像
docker images
运行容器
docker run -id \
-p 3306:3306 \
--name=mysql_container \
-v /usr/local/mysql/conf:/etc/mysql/conf.d \
-v /usr/local/mysql/logs:/logs \
-v /usr/local/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql
跳转终端
docker exec -it mysql-running bash
登录
mysql -uroot -pxxx
附录
mysqld 进程占用过高解决方案
首先跳转到 mysql 内:docker exec -it mysql /bin/bash
如果是新创建的 container,内部没有安装 vim 编辑器,需要先运行以下指令安装下
apt-get update
apt-get install vim
随后修改/etc/mysql/my.cnf文件,建议的配置如下:
key_buffer_size = 16M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
docker run 详解
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的高端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="illtamer": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2"or--cpuset="0,1,2": 绑定容器到指定CPU运行;
-m:设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持bridge/host/none/container:<name|id>四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
--volume,-v: 绑定一个卷
docker exec 详解
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明:
-d: 分离模式: 在后台运行
-i: 即使没有附加也保持STDIN 打开
-t: 分配一个伪终端