docker下载命令
重启docker
搜索aliyun 然后登陆,点开控制台
点击产品与服务
点击容器镜像服务,再点击镜像加速器
输入命令行就可以了
下载mysql:
sudo docker pull mysql:8.0.20
建议这样写,我弄了快两天得出来的经验:这两个是ubuntu系统上的(不是虚拟机)
第一种:docker run -p 3306:3306 -it -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql-files -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=abc --name mysql mysql:8.0.20 (不在后台运行)
第二种:docker run -p 3306:3306 -dit -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql-files -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:8.0.20 (容器在后台运行)
虚拟机:docker run -p 3306:3306 --name mysql -v /docker/mysql/log:/var/log/mysql -v /docker/mysql/data:/var/lib/mysql -v /docker/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker exec -it mysql02 /bin/bash 进入交互模式。可以登录mysql了
docker run \表示启动一个容器
-p 表示端口映射:前一个为主机端口地址,后一个为容器端口地址 因为docker容器也相当于一个linux虚拟机、
-it 伪终端交互模式,如果不加这个创建好了容器很快容器就会自动停止,被这个坑了好久
-dit 表示进入后台运行
-v 表示将主机目录挂载到容器对应目录,可以看做是windows中的快捷方式,但是通过修改挂载目录的文件也可以修改容器中的文件
-e 表示初始化root密码
-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="ritchie": 设置环境变量; --env-file=[]: 从指定文件读入环境变量; --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行; -m :设置容器使用内存最大值; --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型; --link=[]: 添加链接到另一个容器; --expose=[]: 开放一个端口或一组端口; --volume , -v: 绑定一个卷
mysql配置
[client] default-character-set=utf8 [mysql] #设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #修改大小写敏感 skip-grant-tables lower_case_table_names=1 #mysql5.7以后的不兼容问题处理 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd #允许最大连接数 max_connections=200 #服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 #创建新表时将使用的默认存储引擎 default-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=16M #设置时区 default-time_zone='+8:00'
docker 启动redis容器:
mkdir -p /mydata/redis/conf //创建外部目录
touch /mydata/redis/conf/redis.conf //创建文件
docker run -p 6379:6379 --name myredis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -dit redis redis-server /etc/redis/redis.conf //服务器已经打开了dit redis redis-serve
打开redis.conf 添加appendonly yes //添加持久化
docker exec -it myredis redis-cli //打开客户端