docker search mysql 查找mysql
docker pull mysql 拉去下來
docker run -p [你自定義的端口]:3306 -e MYSQL_ROOT_PASSWORD=[您的mysql密碼] -d mysql:[版本號] 啟動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ù)庫時2059 - Authentication plugin 'caching_sha2_password' cannot be loaded報錯
請用最新的 navicate 版本
新建mysql實例
docker run -d -p [自定義端口]:3306 --privileged=true -v [本地存儲]/log:/var/log/mysql -v [本地存儲]/data:/var/lib/mysql -v [本地存儲]/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=[密碼] --name [定義容器名] [容器名]:[容器版本]
實例
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ù)再啟動,看數(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ù)沒刪除,數(shù)據(jù)依然在~
docker search redis 查找redis
docker pull redis 拉去下來
docker run -d -p [自定義端口]:6379 redis:[版本號] 運(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
開啟redis驗證 ==可選==
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注釋起來或者改為daemonize no,不然會和docker run -d 沖突導(dǎo)致容器啟動失敗
# 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
開啟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存儲目錄]/redis.conf:/etc/redis/redis.conf -v [redis存儲目錄]/data:/data -d [鏡像]:[版本號] 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
這是可以在一個容器里面 把所需要的環(huán)境都裝好了。 然后 再把容器打包成鏡像 是這個意思嗎?
下次使用的時候 就只需要 拉取鏡像 然后 上傳項目代碼 就能完成項目的部署了 是這個意思吧