docker 安裝 mysql redis
centos7 安裝 docker
https://zhuanlan.zhihu.com/p/140732202
http://www.reibang.com/p/2711c296cfce
https://cloud.tencent.com/developer/article/1701451
http://www.reibang.com/p/7d9ff93bc89e
windows 安裝 vagrant
https://zhuanlan.zhihu.com/p/259833884
centos7 安裝 docker docker-compose
創(chuàng)建目錄結(jié)構(gòu)
docker/docker-compose.yml
docker/mysql/data
docker/mysql/my.cnf
docker/redis/data
docker/redis/redis.conf
編寫my.cnf文件
[client]
port = 3306
socket = /var/lib/mysql/data/mysql.sock
[mysqld]
# 針對5.7版本執(zhí)行g(shù)roup by字句出錯問題解決
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
# 一般配置選項
basedir = /var/lib/mysql
datadir = /var/lib/mysql/data
port = 3306
socket = /var/lib/mysql/data/mysql.sock
lc-messages-dir = /usr/share/mysql # 務(wù)必配置此項,否則執(zhí)行sql出錯時,只能顯示錯誤代碼而不顯示具體錯誤消息
character-set-server=utf8
lower_case_table_names=1
back_log = 300
max_connections = 3000
max_connect_errors = 1000
table_open_cache = 4096
max_allowed_packet = 32M
#binlog_cache_size = 4M
max_heap_table_size = 128M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
query_cache_size = 64M
query_cache_limit = 4M
ft_min_word_len = 8
thread_stack = 512K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
#log-bin=mysql-bin
long_query_time = 6
server_id=1
innodb_buffer_pool_size = 256M
innodb_thread_concurrency = 16
innodb_log_buffer_size = 16M
編寫redis.conf文件
這里有個坑鲸匿,通常單獨下載
redis
都是把守護進程開啟荔睹,但是這里須設(shè)置為no判导,因為daemonize yes
,他的作用是開啟守護進程模式馋袜,在該模式下旨巷,redis
會在后臺運行,并將進程pid
號寫入至redis.conf
選項pidfile
設(shè)置的文件中尿赚,此時redis
將一直運行散庶,除非手動kill該進程。但是在后面的命令中“-d”
選項也是開啟daemonize
凌净,只不過這是docker
自家的方式悲龟。所以會產(chǎn)生沖突,這也是很多人不能正常啟動的原因(當(dāng)時在這個坑里呆了好久)
#注釋掉冰寻,允許所有其他ip訪問躲舌,真實使用最好坐下限制,只允許某些主機訪問
#bind 127.0.0.1
# 若使用開機啟動性雄,生成pid没卸,該項必須設(shè)置為誒yes,否則redis將不能夠正常執(zhí)行開機啟動(systemctl start redis,執(zhí)行后一直卡著秒旋,直到超時)
daemonize no
# 允許其他機器上的客戶端連接當(dāng)前redis约计,配置文件設(shè)置該項,則開機啟動處就可以去掉--protected no
protected-mode no
#設(shè)置密碼
requirepass root
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
編寫 docker-compose.yml 文件
version: '3'
services:
mysql:
hostname: mysql
image: mysql:5.7.26
# network_mode: "host" # 如果需要容器使用宿主機IP(內(nèi)網(wǎng)IP)迁筛,則可以配置此項
container_name: mysql # 指定容器名稱煤蚌,如果不設(shè)置此參數(shù),則由系統(tǒng)自動生成
restart: unless-stopped # 設(shè)置容器自啟模式
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci # 設(shè)置utf8字符集
environment:
- TZ=Asia/Shanghai # 設(shè)置容器時區(qū)與宿主機保持一致
- MYSQL_ROOT_PASSWORD=123456 # 設(shè)置root密碼
volumes:
- /etc/localtime:/etc/localtime:ro # 設(shè)置容器時區(qū)與宿主機保持一致
- ./mysql/data:/var/lib/mysql/data # 映射數(shù)據(jù)庫保存目錄到宿主機细卧,防止數(shù)據(jù)丟失
- ./mysql/my.cnf:/etc/mysql/my.cnf # 映射數(shù)據(jù)庫配置文件
ports:
- "3306:3306"
redis:
hostname: redis
image: redis:5.0.4
container_name: redis
restart: always
command: redis-server /etc/redis.conf # 啟動redis命令
environment:
- TZ=Asia/Shanghai
volumes:
- /etc/localtime:/etc/localtime:ro # 設(shè)置容器時區(qū)與宿主機保持一致
- ./redis/data:/data
- ./redis/redis.conf:/etc/redis.conf
ports:
- "6379:6379"
安裝docker
//使用阿里云的鏡像地址
yum install -y yum-utils
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
y
-
更新 yum 軟件包索引
yum makecache fas
-
docker-ce
yum install docker-ce docker-ce-cli containerd.io
-
運行 docker
systemctl start docker
檢測是否成功
sudo docker run hello-world
安裝docker docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
添加國內(nèi)加速
[https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6]:
vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://dockerhub.azk8s.cn"
]
}
systemctl daemon-reload
systemctl restart docker
創(chuàng)建并啟動容器
docker-compose -f docker-compose.yml up -d
up
選項啟動容器尉桩,-d
選項以守護模式運行,鏡像如果沒有贪庙,docker會先拉取鏡像蜘犁,有則直接創(chuàng)建并啟動容器,注意文件運行前不能有其==同名容器==止邮,還有須注意==防火墻設(shè)置==
如果要批量停止容器并清除容器这橙,可以使用down
命令
docker-compose -f docker-compose.yml down
如果要重新構(gòu)建容器,可以使用--build
選項
docker-compose -f docker-compose.yml up --build -d
https://segmentfault.com/q/1010000002392472
列出所有的容器 ID
1
docker ps -aq
停止所有的容器
1
docker stop $(docker ps -aq)
刪除所有的容器
1
docker rm $(docker ps -aq)
刪除所有的鏡像
1
docker rmi $(docker images -q)
復(fù)制文件
1
2
docker cp mycontainer:/opt/file.txt /opt/local/
docker cp /opt/local/file.txt mycontainer:/opt/
管理
docker
systemctl start docker // 啟動
systemctl stop docker // 關(guān)閉docker
systemctl status docker // 查看docker的運行狀態(tài)
systemctl restart docker // 重啟docker
centoros 7
reboot 重啟
halt 關(guān)機
vagrant
https://vagrant.ninghao.net/vm--manage.html
vagrant status // 查看狀態(tài)
vagrant halt // 關(guān)閉
vagrant suspend //休眠
vagrant destroy //銷毀
vagrant up //啟動
vagrant ssh //連接