常用服务Docker容器部署
  LBU0gU3sNfd6 2023年11月02日 50 0

1.MySQL单机容器部署

启动命令

docker run -d -p 3306:3306 --privileged=true \
-v /data/mysql57/log:/var/log/mysql \
-v /data/mysql57/data:/var/lib/mysql \
-v /data/mysql57/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
--restart=always \
--name mysql57 mysql:5.7

准备my.cnf配置文件(UTF-8)【/data/mysql57/conf/my.cnf】

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8

准备my.cnf配置文件(UTF-8mb4)

[client]
default-character-set=utf8mb4
 
[mysql]
default-character-set=utf8mb4
 
[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

查看字符集 show variables like '%character%';

常用服务Docker容器部署_mysql

2.MySQL主从容器部署

启动主从数据库

docker run -p 3307:3306 --name mysql-master \
 --privileged=true \
-v /data/mysql-master/log:/var/log/mysql \
-v /data/mysql-master/data:/var/lib/mysql \
-v /data/mysql-master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7

docker run -p 3308:3306 --name mysql-slave \
 --privileged=true \
-v /data/mysql-slave/log:/var/log/mysql \
-v /data/mysql-slave/data:/var/lib/mysql \
-v /data/mysql-slave/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7

准备环境,主数据环境(/data/mysql-master/conf/my.cnf)

[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=101 
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql  
## 开启二进制日志功能
log-bin=mall-mysql-bin  
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M  
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed  
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7  
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062

准备从数据库环境(/data/mysql-slave/conf/my.cnf)

[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=102
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql  
## 开启二进制日志功能,以备Slave作为其它数据库实例的Master时使用
log-bin=mall-mysql-slave1-bin  
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M  
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed  
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7  
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062  
## relay_log配置中继日志
relay_log=mall-mysql-relay-bin  
## log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1  
## slave设置为只读(具有super权限的用户除外)
read_only=1

重启数据库服务

docker restart mysql-master
docker restart mysql-slave

进入主数据库

docker exec -it mysql-master /bin/bash
mysql -uroot -proot
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

进入从数据库

docker exec -it mysql-slave /bin/bash
mysql -uroot -proot
change master to master_host='宿主机ip', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;

# 查看状态
show slave status \G;

# 开启同步
start slave;

# 查看状态
show slave status \G;

3.Redis单机容器部署

准备配置文件目录 mkdir -p /data/redis-01/conf && vim /data/redis-01/conf/redis.conf 配置redis.conf

appendonly yes
port 6379
bind 0.0.0.0

启动容器redis

docker run -d -p 6379:6379 --restart=always \
-v /data/redis-01/conf/redis.conf:/etc/redis/redis.conf \
-v /data/redis-01/data:/data \
--privileged=true \
--name redis-01 redis:6.2.5 \
redis-server /etc/redis/redis.conf

4.Redis主从容器部署

主节点准备配置文件目录

mkdir -p /data/redis/conf && vim /data/redis/conf/redis.conf

配置redis.conf

protected-mode no
daemonize no
requirepass 123

从节点准备配置文件目录

mkdir -p /data/redis/conf && vim /data/redis/conf/redis.conf

配置redis.conf

protected-mode no
daemonize no
requirepass 123
masterauth 123
replicaof 192.168.1.85 6379

启动主节点容器redis

docker run -d -p 6379:6379 -p 26379:26379 \
--restart=always \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
-v /etc/localtime:/etc/localtime:ro \
--privileged=true \
--name redis-master redis:6.2.5 \
redis-server /etc/redis/redis.conf

启动从节点容器redis

docker run -d -p 6379:6379 -p 26379:26379 \
--restart=always \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
-v /etc/localtime:/etc/localtime:ro \
--privileged=true \
--name redis-slave redis:6.2.5 \
redis-server /etc/redis/redis.conf

测试

docker exec -it redis-master bash
redis-cli
auth 123
info Replication

5.Ngxin容器部署

nginx.conf配置文件

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

nginx容器启动命令

docker run -d -p 8081:80 --restart=always \
-v /data/nginx-01/conf.d/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx-01/html:/etc/nginx/html:ro \
-v /data/nginx-01/log:/usr/log/nginx \
--privileged=true \
--name nginx-01 nginx:1.21

6.PortainerCE部署

docker run -d \
-p 9000:9000 \
-p 8000:8000 \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/portainer-ce:/data \
--name portainer-ce portainer/portainer-ce

7.nacos单机部署

docker run -d \
--name nacos -p 8848:8848 \
-e PREFER_HOST_MODE=hostname \
-e MODE=standalone \
--restart always \
nacos/nacos-server:2.0.3

8.MongoDB部署

mkdir -p /data/mongodb/data

# 不需要密码
docker run -itd \
--name mongo \
-v /data/mongodb/data:/data/db \
-p 27017:27017 \
mongo:4.4

# 需要密码
docker run -itd \
--name mongo -v \
--auth \
/data/mongodb/data:/data/db \
-p 27017:27017 \
mongo:4.4

进入admin数据库 docker exec -it mongo mongo admin

执行sql创建用户

db.createUser({
user:'root',
pwd:'123456',
roles:[{
role:'userAdminAnyDatabase',
db: 'admin'
},
'readWriteAnyDatabase'
]});

9.RabbitMQ部署

docker run -d \
--hostname my-rabbit \
--name rabbit \
-p 15672:15672 -p 5672:5672 \
192.168.1.111:8084/rabbitmq

docker run -d \
--hostname my-rabbit \
--name rabbit \
-p 15672:15672 -p 5672:5672 \
192.168.1.111:8084/rabbitmq:3-management
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  eHipUjOuzYYH   2023年12月10日   31   0   0 mysqlsqlUser
  wwLZeziuqjLR   2023年12月11日   33   0   0 Dockercentos
  MCWYWqSAMsot   2023年12月11日   35   0   0 Docker
  DnoStTHsc0vp   2023年12月11日   30   0   0 Docker
  wwLZeziuqjLR   2023年12月08日   105   0   0 Dockercentosbash
  9JCEeX0Eg8g4   2023年12月11日   26   0   0 mysql配置文件