docker search mysql 查找mysql
docker pull mysql 拉去下來(lái)
docker run -p [你自定義的端口]:3306 -e MYSQL_ROOT_PASSWORD=[您的mysql密碼] -d mysql:[版本號(hào)] 啟動(dòng)mysql
docker exec -it [容器id] /bin/bash 進(jìn)入容器
在容器中
mysql -u root -p 進(jìn)入mysql 輸入密碼
SHOW VARIABLES LIKE 'character%'; 查看mysql默認(rèn)編碼
解決鏈接數(shù)據(jù)庫(kù)時(shí)2059 - Authentication plugin 'caching_sha2_password' cannot be loaded報(bào)錯(cuò)
請(qǐng)用最新的 navicate 版本
新建mysql實(shí)例
docker run -d -p [自定義端口]:3306 --privileged=true -v [本地存儲(chǔ)]/log:/var/log/mysql -v [本地存儲(chǔ)]/data:/var/lib/mysql -v [本地存儲(chǔ)]/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=[密碼] --name [定義容器名] [容器名]:[容器版本]
實(shí)例
docker run -d -p 3306:3306 --privileged=true -v /zzyyuse/mysql/log:/var/log/mysql -v /zzyyuse/mysql/data:/var/lib/mysql -v /zzyyuse/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
cd /zzyyuse/mysql/conf cd到該目錄
vim my.cnf 新建編輯文件my.cnf
插入一下并保存退
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
cat my.cnf 再次輸入此命令查看文件內(nèi)容
docker restart [你的mysql容器id或者名稱] 修改完要重啟mysql
SHOW VARIABLES LIKE 'character%'; 查看編碼是否修改成功
docker rm -f [容器id/容器名] 刪除容器
下面重復(fù)再啟動(dòng),看數(shù)據(jù)是否還在里面
docker run -d -p 3306:3306 --privileged=true -v /zzyyuse/mysql/log:/var/log/mysql -v /zzyyuse/mysql/data:/var/lib/mysql -v /zzyyuse/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=1164601554 --name mysql mysql
容器數(shù)據(jù)和宿主機(jī)同步,宿主機(jī)的數(shù)據(jù)沒(méi)刪除,數(shù)據(jù)依然在~
docker search redis 查找redis
docker pull redis 拉去下來(lái)
docker run -d -p [自定義端口]:6379 redis:[版本號(hào)] 運(yùn)行redis
docker exec -it [容器id] /bin/bash 進(jìn)入redis
在宿主機(jī)新建目錄
mkdir -p /app/redis
將文件redis.conf 拷貝到目錄/app/redis 里面
下面是修改redis.conf
vim /app/redis/redis.conf
開(kāi)啟redis驗(yàn)證 ==可選==
requirepass 123 123是你設(shè)置的密碼
==允許redis外地連接-必須== 注釋掉 #bind 127.0.0.1
# Examples:
#
# bind 192.168.1.100 10.0.0.1
bind 0.0.0.0 ::1
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 0.0.0.1
將daemonize yes注釋起來(lái)或者改為daemonize no,不然會(huì)和docker run -d 沖突導(dǎo)致容器啟動(dòng)失敗
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize no
開(kāi)啟redis數(shù)據(jù)持久化--==可選== appendonly yes
# Please check http://redis.io/topics/persistence for more information.
appendonly yes
docker run -p [自定義端口]:6379 --name [容器新名稱] --privileged=true -v [redis存儲(chǔ)目錄](méi)/redis.conf:/etc/redis/redis.conf -v [redis存儲(chǔ)目錄](méi)/data:/data -d [鏡像]:[版本號(hào)] redis-server /etc/redis/redis.conf
示例
docker run -p 6379:6379 --name redis --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis redis-server /etc/redis/redis.conf
進(jìn)入redis
docker exec -it redis /bin/bash
redis-cli 登入redis
這是可以在一個(gè)容器里面 把所需要的環(huán)境都裝好了。 然后 再把容器打包成鏡像 是這個(gè)意思嗎?
下次使用的時(shí)候 就只需要 拉取鏡像 然后 上傳項(xiàng)目代碼 就能完成項(xiàng)目的部署了 是這個(gè)意思吧