windows vagrant docker 安裝 mysql redis

docker 安裝 mysql redis

centos7 安裝 docker

https://zhuanlan.zhihu.com/p/140732202

http://www.itdecent.cn/p/2711c296cfce

https://cloud.tencent.com/developer/article/1701451

http://www.itdecent.cn/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]
 # 針對(duì)5.7版本執(zhí)行g(shù)roup by字句出錯(cuò)問(wèn)題解決
 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
 # 一般配置選項(xiàng)
 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ù)必配置此項(xiàng),否則執(zhí)行sql出錯(cuò)時(shí),只能顯示錯(cuò)誤代碼而不顯示具體錯(cuò)誤消息
 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文件

這里有個(gè)坑,通常單獨(dú)下載redis都是把守護(hù)進(jìn)程開(kāi)啟,但是這里須設(shè)置為no,因?yàn)?code>daemonize yes,他的作用是開(kāi)啟守護(hù)進(jìn)程模式,在該模式下,redis會(huì)在后臺(tái)運(yùn)行,并將進(jìn)程pid號(hào)寫入至redis.conf選項(xiàng)pidfile設(shè)置的文件中,此時(shí)redis將一直運(yùn)行,除非手動(dòng)kill該進(jìn)程。但是在后面的命令中“-d”選項(xiàng)也是開(kāi)啟daemonize,只不過(guò)這是docker自家的方式。所以會(huì)產(chǎn)生沖突,這也是很多人不能正常啟動(dòng)的原因(當(dāng)時(shí)在這個(gè)坑里呆了好久)

#注釋掉,允許所有其他ip訪問(wèn),真實(shí)使用最好坐下限制,只允許某些主機(jī)訪問(wèn)
#bind 127.0.0.1
# 若使用開(kāi)機(jī)啟動(dòng),生成pid,該項(xiàng)必須設(shè)置為誒yes,否則redis將不能夠正常執(zhí)行開(kāi)機(jī)啟動(dòng)(systemctl start redis,執(zhí)行后一直卡著,直到超時(shí))
daemonize no
# 允許其他機(jī)器上的客戶端連接當(dāng)前redis,配置文件設(shè)置該項(xiàng),則開(kāi)機(jī)啟動(dòng)處就可以去掉--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" # 如果需要容器使用宿主機(jī)IP(內(nèi)網(wǎng)IP),則可以配置此項(xiàng)
    container_name: mysql # 指定容器名稱,如果不設(shè)置此參數(shù),則由系統(tǒng)自動(dòng)生成
    restart: unless-stopped # 設(shè)置容器自啟模式
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci # 設(shè)置utf8字符集
    environment:
      - TZ=Asia/Shanghai # 設(shè)置容器時(shí)區(qū)與宿主機(jī)保持一致
      - MYSQL_ROOT_PASSWORD=123456 # 設(shè)置root密碼
    volumes:
       - /etc/localtime:/etc/localtime:ro # 設(shè)置容器時(shí)區(qū)與宿主機(jī)保持一致
       - ./mysql/data:/var/lib/mysql/data # 映射數(shù)據(jù)庫(kù)保存目錄到宿主機(jī),防止數(shù)據(jù)丟失
       - ./mysql/my.cnf:/etc/mysql/my.cnf # 映射數(shù)據(jù)庫(kù)配置文件
    ports:
        - "3306:3306"

  redis:
    hostname: redis
    image: redis:5.0.4
    container_name: redis
    restart: always
    command: redis-server /etc/redis.conf # 啟動(dòng)redis命令
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - /etc/localtime:/etc/localtime:ro # 設(shè)置容器時(shí)區(qū)與宿主機(jī)保持一致
      - ./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
  1. 更新 yum 軟件包索引

       yum makecache fas
    
  2. docker-ce

    yum install docker-ce docker-ce-cli containerd.io
    
  3. 運(yùn)行 docker

     systemctl start docker
    
  4. 檢測(cè)是否成功 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

添加國(guó)內(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)建并啟動(dòng)容器

docker-compose -f docker-compose.yml up -d

up選項(xiàng)啟動(dòng)容器,-d選項(xiàng)以守護(hù)模式運(yùn)行,鏡像如果沒(méi)有,docker會(huì)先拉取鏡像,有則直接創(chuàng)建并啟動(dòng)容器,注意文件運(yùn)行前不能有其==同名容器==,還有須注意==防火墻設(shè)置==

如果要批量停止容器并清除容器,可以使用down命令

docker-compose -f docker-compose.yml down

如果要重新構(gòu)建容器,可以使用--build選項(xiàng)

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        // 啟動(dòng)
systemctl stop docker        // 關(guān)閉docker
systemctl status docker     // 查看docker的運(yùn)行狀態(tài)
systemctl restart  docker   // 重啟docker

centoros 7

reboot 重啟
halt 關(guān)機(jī)

vagrant

https://vagrant.ninghao.net/vm--manage.html

vagrant status // 查看狀態(tài)
vagrant halt   // 關(guān)閉
vagrant suspend  //休眠
vagrant destroy  //銷毀
vagrant up  //啟動(dòng)
vagrant ssh //連接
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容