一 .mysql
1.去docker的鏡像倉庫找你需要的鏡像,地址https://hub.docker.com/search?q=mysql&type=image
點擊搜索到得鏡像 在tags里面能找到不同的版本善炫,根據(jù)需要的版本下載不同的鏡像
2. 安裝鏡像(切換成root用戶:su root)初始密碼vagrant
docker pull mysql:5.7
檢查時候下載好鏡像
docker images
3.創(chuàng)建實例并啟動
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
參數(shù)說明
-p 3306:3306: 將容器的3306端口映射到主機的3306端口,因為每個容器就相當于一個小的虛擬機欧漱,要想外面的虛擬機能夠訪問里面的虛擬機,必須做端口映射
-v /mydata/mysql/log:/var/log/mysql: 將配置文件夾掛載到主機,這樣實現(xiàn)了一個雙向綁定膏孟,在修改外面的配置文件的時候里面的也跟著改變眯分,里面的被修改的時候,外面的也跟著改變
/mydata/mysq/log:/var/log/mysql:將日志文件夫掛載到主機
-v /mydata/mysql/data:/var/lib/mysql:將配置文件夾掛載到主機-e MYSQL ROOT PASSWORD=root:初始化root用戶的密碼
-d是以后臺的方式運行柒桑,mysql:5.7是以哪個鏡像啟動
4.使用docker ps 查看正在運行中的鏡像
然后在/mydata/mysql/conf?
vi /mydata/mysql/conf/mv.cnf
屬于修改字符集的配置
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
配置完成后弊决,重啟mysql
docker restart mysql
如何進入鏡像內部,查看mysql的配置呢
docker exec -it mysql /bin/bash
在到mysql的配置文件的路徑下找就可以了
配置mysql魁淳,開機自啟
docker update mysql--restart=always
二.redis
1.下載鏡像
docker pull redis
2.創(chuàng)建實例并啟動
首先要創(chuàng)建conf目錄下的redis.conf文件飘诗,這個不會自動創(chuàng)建
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379--name redis\
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
3.使用redis鏡像執(zhí)行redi-cli命令連接
docker exec -it redis redis-cli
4.修改配置文件,開啟持久化
vim redis.conf
添加 appendonly yes
重啟redis
docker restart redis
注意:在啟動redis的運行了run卻發(fā)現(xiàn)命令有問題界逛,導致服務沒有啟動起來
獲取 container ID 或者名字
docker container ls -a
如果想要刪除正在運行的container昆稿,要先停止
docker? container? stop? CONTAINER_ID
刪除指定的container
docker? container? rm? CONTAINER_ID? 或者 docker? container? rm? CONTAINER_NAME?