Docker-compose 一键部署 Nginx+PHP+MySql+Redis 环境
经过上面docker分别单独部署,nginx,PHP,mysql,redis服务。今天经过半天终于用docker-compose集成了Nginx+PHP+MySql+Redis环境,一键部署,确实方便太多了。好了,回归正题,下面我部署环境的流程。准备工作:安装 Docker(参考之前文章)安装 Docker-compose (参考之前文章)大家可以用我集成好的docker-compose文件,部署分为三步。1、下载文件 docker-compose 部署包下载地址:https://www.aliyundrive.com/s/AwX2ff4ZLyu 提取码: 2f8xGitee仓库地址 :https://gitee.com/lingfeng9527/docker-compose.git2、解压上传到服务器任务一个位置3、执行命令:docker-compose up -d好了,已经部署好了。访问地址就可以看到结果。HTML:PHP文件访问测试MySQL连接:测试Redis:可以看到redis也是没什么问题了。上面已经验证了结果,接下来我们分别说明集成过程,嫌麻烦的朋友或者熟手可以不用看下面的内容!首先准备工作,准备Nginx+PHP+MySql+Redis环境所需要的文件夹和文件:docker-compose 文件:version: '3' #docker-compose语法的版本 services: php: #创建 php的容器 container_name: php74 image: php:7.4.3-fpm ports: - "9000:9000" restart: always privileged: true links: - "mysql" environment: - TZ=Asia/Shanghai build: ./php #直接到 ./php文件下找Dockerfile volumes: - ./www:/www #把容器的/var/www 映射到./www nginx: #创建 nginx容器 container_name: nginx image: nginx:latest ports: #映射 80和443端口到本机 - 80:80 - 8001:8001 - 4433:443 restart: always depends_on: - "php" links: - "php:php74" environment: - TZ=Asia/Shanghai privileged: true volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf #把容器的nginx.conf映射到 ./nginx/nginx.conf - ./nginx/conf.d:/etc/nginx/conf.d #把容器的conf.d映射到 ./nginx/conf.d - ./www:/usr/share/nginx/html #把容器的/usr/share/nginx/html 映射到./www - ./nginx/logs:/var/log/nginx #把容器的/var/log/nginx 映射到./nginx/logs mysql: container_name: mysql image: mysql:latest volumes: - ./mysql/data:/var/lib/mysql #把容器的数据文件夹映射到 ./mysql/data - ./mysql/logs:/var/log/mysql #把容器的日志文件夹映射到 ./mysql/log - ./mysql/conf:/etc/mysql/conf.d #把容器的my.conf文件映射到 ./mysql/my.conf 暂时去掉 ports: - 3306:3306 #把容器的3306端口映射到本机的3306 restart: always privileged: true environment: - TZ=Asia/Shanghai - MYSQL_ROOT_PASSWORD=469ge9g449646he #root密码(我这里乱输的,自己可改) - MYSQL_USER=test #另一个帐号 - MYSQL_PASS=123456 #另一个帐号的密码 redis: #创建 reids的容器 container_name: redis image: redis:latest restart: always ports: - "6379:6379" environment: - TZ=Asia/Shanghai volumes: - ./redis/conf/redis.conf:/etc/redis/redis.conf #把容器的配置文件夹映射到 ./redis/config/redis.conf - ./redis/data:/data command: /bin/sh -c "echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf && redis-server /etc/redis/redis.conf --appendonly yes" # 指定配置文件并开启持久化 privileged: true # 使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限docker-compose 文件就是用来管理各个docker容器服务。www:这个主要是放所有的网站项目,html文件或者PHP文件,如果需要放其他语言的文件,可以参考我的方法集成其他环境。Nginx:Nginx所有相关的配置文件、日志文件MySQL:相关的配置文件,数据文件,日志文件PHP:Dockerfile文件,主要是安装PHP的相关东西,包括PHP扩展。Redis:redis配置和数据文件mkdir /docker-compose/mysql mkdir /docker-compose/mysql/conf touch /docker-compose/mysql/conf/my.conf mkdir /docker-compose/mysql/data mkdir /docker-compose/mysql/logs mkdir /docker-compose/nginx mkdir /docker-compose/nginx/conf.d mkdir /docker-compose/nginx/conf.d/www.test.com.conf mkdir /docker-compose/nginx/conf.d/www.testphp.com.conf mkdir /docker-compose/nginx/logs touch /docker-compose/nginx/nginx.conf mkdir /docker-compose/php touch /docker-compose/php/Dockerfile mkdir /docker-compose/redis mkdir /docker-compose/redis/conf touch /docker-compose/redis/conf/redis.conf mkdir /docker-compose/redis/data mkdir /docker-compose/www touch /docker-compose/www/index.html #可以放入一些html文件 touch /docker-compose/www/php_dome/index.php #可以放入一些php文件 touch docker-compose.ymlmy.conf 文件内容:[mysqld] max_allowed_packet = 20M innodb_buffer_pool_size=128M query_cache_size=56M key_buffer_size = 16M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M log-bin=/var/lib/mysql/binlog server-id=344 binlog_format=ROWwww.test.com.conf 文件内容:server { listen 80; server_name 192.168.11.146; location / { #注意这里的root目录是容器的网站目录 root /usr/share/nginx/html/; index index.html index.htm index.php; } }www.testphp.com.conf 文件内容:server { listen 8001; server_name 192.168.11.146; location / { root /usr/share/nginx/html/php_demo; index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; include fastcgi_params; } }nginx nginx.conf 文件内容:user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/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 /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; client_max_body_size 66M; gzip on; include /etc/nginx/conf.d/*.conf; }PHP Dockerfile 文件内容:FROM php:7.4.3-fpm # packages RUN apk --update add \ autoconf \ build-base \ linux-headers \ libaio-dev \ zlib-dev \ curl \ git \ subversion \ freetype-dev \ libjpeg-turbo-dev \ libmcrypt-dev \ libpng-dev \ libtool \ libbz2 \ bzip2 \ bzip2-dev \ libstdc++ \ libxslt-dev \ openldap-dev \ imagemagick-dev \ make \ unzip \ wget && \ docker-php-ext-install bcmath mcrypt zip bz2 pdo_mysql mysqli simplexml opcache sockets mbstring pcntl xsl && \ docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ pecl install imagick && \ docker-php-ext-enable imagick && \ pecl install swoole && \ docker-php-ext-enable swoole && \ docker-php-ext-install gd && \ docker-php-ext-enable opcache && \ apk del build-base \ linux-headers \ libaio-dev \ && rm -rf /var/cache/apk/* ENV COMPOSER_ALLOW_SUPERUSER 1 ENV COMPOSER_HOME /tmp ENV COMPOSER_VERSION 1.5.1 RUN curl -s -f -L -o /tmp/installer.php https://raw.githubusercontent.com/composer/getcomposer.org/da290238de6d63faace0343efbdd5aa9354332c5/web/installer \ && php -r " \ \$signature = '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410'; \ \$hash = hash('SHA384', file_get_contents('/tmp/installer.php')); \ if (!hash_equals(\$signature, \$hash)) { \ unlink('/tmp/installer.php'); \ echo 'Integrity check failed, installer is either corrupt or worse.' . PHP_EOL; \ exit(1); \ }" \ && php /tmp/installer.php --no-ansi --install-dir=/usr/bin --filename=composer --version=${COMPOSER_VERSION} \ && rm /tmp/installer.php \ && composer --ansi --version --no-interaction VOLUME /var/www WORKDIR /var/www CMD php-fpm好了,到这里基本上都介绍完了。
查看详情点赞21评论收藏1浏览6852023-05-19 15:35:40Linux Docker 安装Nginx
Docker库地址https://hub.docker.com/1.自动安装dockercurl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #开机启动: systemctl enable docker2、手动安装docker,并拉镜像,运行进行测试教程地址:https://www.runoob.com/docker/centos-docker-install.html#查看docker版本 docker --version #启动 systemctl start docker systemctl restart docker #卸载: yum remove docker-ce docker stats --help #进入容器: docker exec -it nginx /bin/bash docker exec -it 7697977d2d88 /bin/bash #拉最新的Nginx docker pull nginx:latest #查看镜像 docker images #测试镜像 sudo docker run --name nginx -p 9091:80 -d nginx:latest docker ps //查看IP ifconfig http://192.168.0.1:90913、容器部署#本机创建目录,用于容器Nginx挂载出来出来 # 创建网站目录 mkdir -p /server/nginx/html # 创建日志目录 mkdir -p /server/nginx/logs # 创建配置目录 mkdir -p /server/nginx/conf ## 拷贝配置文件 docker cp nginx:/etc/nginx/nginx.conf /server/nginx/conf/nginx.conf docker cp nginx:/etc/nginx/conf.d /server/nginx/conf/conf.d ## 拷贝完配置文件后需要把测试运行的容器停掉,然后再删除容器 docker stop nginx docker rm nginx ## 如果因为权限问题,需要加上--privileged=true这个参数 ## 映射、挂载容器目录,启动容器 docker run -d -p 80:80 -p 443:443 --name nginx -v /server/nginx/html:/usr/share/nginx/html -v /server/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /server/nginx/logs:/var/log/nginx -v /server/nginx/conf/conf.d:/etc/nginx/conf.d --privileged=true nginx:latest #或者 docker run -d -p 80:80 -p 443:443 --name nginx \ -v /server/nginx/html:/usr/share/nginx/html \ -v /server/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /server/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /server/nginx/logs:/var/log/nginx \ --restart=always nginx #新建测试test.conf server { listen 80; server_name 192.168.0.1; location / { #注意这里的root目录是容器的网站目录 root /usr/share/nginx/www_test_com; index index.html index.htm; } location /api/ { proxy_pass http://192.168.0.1:8080/; } } # 移动copy的conf.d目录中的文件到正确的位置: mv /mydata/nginx/conf.d/* /mydata/nginx/conf/conf.d /到这里Nginx就配置好了
查看详情点赞1评论收藏浏览872023-05-11 20:33:28Linux Docker 安装Mysql
首先安装docker,这里不做过多介绍#查看docker版本 docker --version #启动 systemctl start docker systemctl restart docker #搜索mysql镜像 docker search mysql docker pull mysql:latest #查看镜像 docker images 启动: docker run -itd \ --name mysql \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=123456 mysql # -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。 # MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。 #进入MySQL: docker ps docker exec -it a469eb1589e bash #查看mysql版本: mysql --version #登录mysql mysql -uroot -p #查看数据库: show databases;#MySQL的安全设置 # 登录mysql mysql -u root -p # 修改root账号的密码,不同版本修改密码的SQL语句是不一样的 ALTER USER 'root'@'localhost' IDENTIFIED BY '456789'; # 添加远程登录用户 CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '456789'; GRANT ALL PRIVILEGES ON *.* TO 'test'@'%'; # 刷新权限 # flush privileges; FLUSH PRIVILEGES; # 增加root用户的远程连接权限并指定密码 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '456789'; # 更新权限 flush privileges; ## 解决认证插件错误 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '456789'; flush privileges; #一般到这里就可以链接了 #因为现在是新版本8.0了 ,老版本的修改密码的语法已不再适用,mysql 5.7.9以后废弃了password字段和password()函数; #新版本的密码修改可以通过如下命令操作: use mysql; ALTER user 'root'@'localhost' IDENTIFIED BY 'newpassward' #-- 注意,这里的密码要用包含8位大写+小写+特殊字符+数字的密码 ALTER user 'root'@'%' IDENTIFIED BY 'shenma@521' FLUSH PRIVILEGES;指定配置文件和数据存放位置#创建本机数据和配置,日志等文件夹 mkdir -vp /server/mysql cd /server/mysql mkdir data logs conf #复制配置文件 docker cp mysql-test:/etc/mysql /server/mysql/conf #复制data文件 docker cp mysql-test:/var/lib/mysql /server/mysql/data #停止并删除容器 docker stop mysql-test docker rm -f mysql-test #重新启动容器 docker run -d -p 3306:3306 \ --name mysql \ --privileged=true \ --restart=unless-stopped \ -v /server/mysql/conf/mysql/conf.d:/etc/mysql/conf.d \ -v /server/mysql/logs:/var/log/mysql \ -v /server/mysql/data/mysql:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql:latest
查看详情点赞1评论收藏浏览502023-05-11 20:40:55Linux Docker 安装Redis
首先安装docker,这里不做过多介绍#查看docker版本 docker --version #启动 systemctl start docker systemctl restart docker #查找redis镜像,并拉去最新的Redis docker search redis docker pull redis:latest #查看镜像 docker images # 无密码安装 docker run -itd --name redis -p 6379:6379 redis:latest # 有密码安装 docker run -itd --name redis -p 6379:6379 redis:latest --requirepass 123456 #查看状态 docker ps #测试Redis是否正常工作 # 进入容器,这里的redis6是容器的名字,可以替换为容器的id docker exec -it redis6 /bin/bash # 运行redis的客户端,进入命令行交互模式 redis-cli # 设置一个测试值 set test 1 # 退出容器 exit #当我们执行 set test 1 这个命令,得到OK的返回结果,就说明,我们的redis已经安装成功了。 #redis的相关文件在如下目录位置: /usr/local/bin/redis-benchmark /usr/local/bin/redis-server /usr/local/bin/redis-sentinel /usr/local/bin/redis-check-aof /usr/local/bin/redis-cli /usr/local/bin/redis-check-rdb 使用自定义配置文件使用docker安装redis有一个坑,就是docker容器里面是没有redis.conf这个文件的,因此如果自定义配置,就有点麻烦了。1)、第一步,先要下载一个标准的redis.conf文件,下载地址如下:各个版本配置文件下载:https://redis.io/topics/config6.0版本的配置文件下载:http://github.com/redis/redis/raw/6.0/redis.conf国内访问上述网站可能无法下载,因此可以使用下面地址进行下载:http://download.redis.io/redis-stable/redis.conf2)、第二步,把文件拷贝到宿主机的相应目录,然后执行下面命令:#创建Redis本机配置文件 mkdir /server/redis/config #把刚才上传的额config.conf文件上传到这里,然后挂载并启动 # 指定配置文件创建容器 docker run -p 6379:6379 \ --name redis \ -v /server/redis/config/redis.conf:/etc/redis/redis.conf \ -v /server/redis/data:/data \ -d redis:latest \ redis-server /etc/redis/redis.conf \ --appendonly yes命令解释说明:-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。--name myredis 指定该容器名称,查看和进行操作都比较方便。-v 挂载目录,规则与端口映射相同。-d redis 表示后台启动redisredis-server /etc/redis/redis.conf 指定配置文件运行在上述命令执行中,还可能出现错误,因为下载的redis.conf文件是最新的,和你的redis版本可能不一致,会导致启动失败。需要用使用如下命令查看日志:根据日志的错误,来修改配置文件即可。# 通过容器ID查看容器日志 docker logs b0f62c846a0a
查看详情点赞1评论1收藏浏览652023-05-11 20:45:03Linux Docker 安装PHP
拉指定php版本,先去docker库查一下版本是否存在:https://hub.docker.com/例如:7.4.3-fpm#准备目录: # html以及php文件目录 mkdir -p /server/dede/www # 日志目录 mkdir -p /server/dede/logs # 配置文件目录 mkdir -p /server/dede/conf # 创建自定义配置文件目录 mkdir -p /server/dede/conf/conf.d #在/server/dede/www目录下创建index.php文件。 <?php echo phpinfo(); ?> #运行PHP容器 docker run --name php7.4.3 -v /server/dede/www:/www -d php:7.4.3-fpm #或者 docker search php docker pull php:7.4.3-fpm docker run --name php7.4.3 -v /server/dede/www:/www -d php:7.4.3-fpm #准备nginx配置文件 #在/server/dede/conf/conf.d目录下创建test-php.conf文件,内容如下: server { listen 80; server_name www.test-php.com; location / { root /usr/share/nginx/html; index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; include fastcgi_params; } } #php:9000: 表示 php-fpm 服务的 URL,下面我们会具体说明。 #/www/: 是 php-fpm 中 php 文件的存储路径,映射到本地的 /server/php/www 目录。 #运行 nginx 容器 docker run --name php-nginx -p 9022:80 -d \ -v /server/php/www:/usr/share/nginx/html:ro \ -v /server/php/conf/conf.d:/etc/nginx/conf.d:ro \ --link php7.4.3:php \ nginx #参数说明: # -p 9022:80: 端口映射,把 nginx 中的 80 映射到本地的 9022 端口。 # /server/php/www: 是本地 html 文件的存储目录 # /usr/share/nginx/html 是容器内 html 文件的存储目录。 # /server/php/conf/conf.d: 是本地 nginx 配置文件的存储目录 # /etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。 # --link myphp7:php: 把 myphp7 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm在浏览器输入http://192.168.10.146:9022/ 显示如下页面:# 安装php docker run --name myphp5 -v /server/dede/www:/www -d php:5.6-fpm # 安装nginx docker run --name php5nginx -p 9022:80 -v /server/dede/www:/usr/share/nginx/html -v /server/dede/conf/conf.d:/etc/nginx/conf.d --link myphp5:php -d nginx安装php扩展#首先进入docker中 php 容器中 docker exec -it php7.4.3 bash (php7.4.3 为容器名) #进入容器中docker 安装扩展的目录下 docker-php-ext-install 为安装扩展 cd /usr/local/bin/ #安装mysql扩展 ./docker-php-ext-install mysql ./docker-php-ext-install mysqli # php.ini的存放目录 /usr/local/etc/php # docker-php-ext-install的存放目录 /usr/local/bin #查看PHP扩展是否安装成功 php -m 安装gd扩展#进入PHP容器 #更新软件源 apt update #安装各种库 apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev #解压源码 docker-php-source extract # 进入gd源码文件夹 cd /usr/src/php/ext/gd #准备编译 docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2 #编译安装 docker-php-ext-install gd #查看是否成功安装gd扩展 php -m | grep gd #重启容器
查看详情点赞1评论收藏1浏览892023-05-11 20:55:56Linux Docker 安装Gitlab
下载镜像文件GitLab 分为 社区版(Community Edition,缩写为 CE)和 企业版(Enterprise Edition,缩写为 EE)。社区版是免费的,而企业版包含一些收费服务,一般来说个人开发者用社区版就足够了。首先需要先下载 GitLab CE 的镜像,使用下面的命令进行下载,因为文件较大,所以可能需要一点时间,耐心等待即可英文版本:# 下载指定版本 docker pull beginor/gitlab-ce:11.0.1-ce.0 # 下载最新版本 docker pull gitlab/gitlab-ce #由于gitlab的镜像非常大,因此下载镜像是一个痛苦的事情,我们耐心等待 #通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。 mkdir -p /server/gitlab/config mkdir -p /server/gitlab/logs mkdir -p /server/gitlab/data #启动命令 docker run --detach \ --hostname gitlab.test.com \ --publish 9050:443 --publish 9051:80 --publish 9052:22 \ --name gitlab \ --restart always \ --volume /server/gitlab/config:/etc/gitlab \ --volume /server/gitlab/logs:/var/log/gitlab \ --volume /server/gitlab/data:/var/opt/gitlab \ --privileged=true \ gitlab/gitlab-ce:latest #命令说明: #--hostname gitlab.shenmazong.com: 设置主机名或域名 #--publish 9043:443:将http:443映射到外部端口8443 #--publish 9044:80:将web:80映射到外部端口8880 #--publish 9045:22:将ssh:22映射到外部端口8222 #--name gitlab: 运行容器名 #--restart always: 自动重启 #--volume /server/gitlab/config:/etc/gitlab: 挂载目录 #--volume /server/gitlab/logs:/var/log/gitlab: 挂载目录 #--volume /server/gitlab/data:/var/opt/gitlab: 挂载目录 #--privileged=true 使得容器内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限 #如果以上命令出现错误,可以试试下面命令: docker run \ -itd \ -p 9050:443 \ -p 9051:80 \ -p 9052:22 \ -v /home/gitlab/etc:/etc/gitlab \ -v /home/gitlab/log:/var/log/gitlab \ -v /home/gitlab/opt:/var/opt/gitlab \ --restart always \ --privileged=true \ --name gitlab \ gitlab/gitlab-ce:latest docker ps #可以看到 GitLab 已经在运行了,有一个属性 STATUS 为 health: starting,说明 gitlab 的服务正在启动中,还没有启动完毕。等这个状态变成 healthy 时则说明已经部署完成,可以访问了。 #gitlab启动成功后,浏览器访问http://ip:9051, 即可访问。 #参考链接:https://www.shenmazong.com/blog/1402160002104504320docker安装gitlab 查看root密码:sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password中文版本:docker pull twang2218/gitlab-ce-zh:latest #启动命令 docker run --detach --publish 9050:443 --publish 9051:80 --publish 9052:22 --name gitlab-zh --restart always --volume /docker/gitlab/config:/etc/gitlab --volume /docker/gitlab/logs:/var/log/gitlab --volume /docker/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh #gitlab启动成功后,浏览器访问http://ip:9051, 即可访问。修改gitlab上git服务器的地址#进入容器编辑gitlab.yml 文件 docker exec -it gitlab bash cd /opt/gitlab/embedded/service/gitlab-rails/config vi gitlab.yml gitlab: host: 192.168.11.146:9051 port: 80 https: false #重启: gitlab-ctl restart
查看详情点赞1评论1收藏浏览872023-05-16 22:28:13Linux centos系统Docker安装 RabbitMq
首先要去docker仓库查找镜像,我们需要下载能可视化操作界面的rabbitMq,所以下载的是management版本。接下来,先建目录,主要是为了存放数据:#建目录 mkdir /server/rabbitmq/data接下来下载rabbitMq镜像:#拉镜像 docker pull rabbitmq:management #启动命令: docker run -d --name rabbitmq \ -p 5672:5672 -p 15672:15672 \ -v /server/rabbitmq/data:/var/lib/rabbitmq \ -e RABBITMQ_DEFAULT_VHOST=my_vhost \ -e RABBITMQ_DEFAULT_USER=admin \ -e RABBITMQ_DEFAULT_PASS=123456\ -m 300m \ --memory-swap=600m \ rabbitmq:management问题:go连接RabbitMQ "no access to this vhost"错误docker exit -it container_name /bin/sh rabbitmqctl add_vhost admin rabbitmqctl set_permissions -p 用户名 admin "." "." ".*"连接的时候指定对应的vhostamqp.Dial("amqp://username:password@ip:5672/admin”)
查看详情点赞1评论收藏浏览552023-05-23 17:44:17Linux 安装docker-compose
点赞评论收藏浏览612023-05-11 20:57:31