阿里云下的docker ,以及运行一个rabbitmq的 docker程序
1 | 使用的是阿里云的安装方式 https://yq.aliyun.com/articles/110806?spm=5176.8351553.0.0.5e3b19914aBPO5 |
安装好后我们选择自己的一个
- 我们在上图中首先设置好我们固定密码,这个密码对应一个当前登录的密码。 (docker login - username= **)
- 然后我们可以使用一个加速后的镜像源。
- 假如我们使用子用户的时候,我们需要用子用户登录后再重新设置一次,
- 子用户的登录入口时不一样的。 https://signin.aliyun.com
仓库建立。以及建立自己的私有仓库,docker pull push
- 命名空间,仓库名,代码源
其他修改问题不是问题。。。主要是子账户登录的时候需要修改。
docker 打包镜像 以及上传问题
- 本地打包镜像并上传到阿里云的私有仓库里
1 | sudo docker login --username=docker@1808011574081122 registry.cn-shanghai.aliyuncs.com |
上传代码使用云端构建项目
- 构建规则可以由我们自己定义
- 优势,本地访问外部网络速度太慢,阿里云的速度还阔以
- 某些网络下载不下来的还是没有办法。哭唧唧
- 刚发现原来阿里云还有一个海外构建的按钮。某些不能下载的东西可以通过这个构建
- 此外我们登进入的时候有时候我们看不到我们的仓库,因为我们没有修改我们的仓库位置
docker相关
1
2
3
4
5docker run -it ros:vins-fusion /bin/bash --name ros_vins # 使用ros:vins-fusion 这个镜像,创建一个名字为ros_vins的容器,并运行一个bash
exit #退出镜像
docker images_contanier_name restart
运行起来后是在后台,
docker exec -it contanierIDorcontaniername /bin/bash #可以使用多运行一个实例
运行一个docker 的rabbit_mq 服务程序
运行命令
1
2docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname rabbit_host -e RABBITMQ_DEFAULT_VHOST=my_vhost
-e RABBITMQ_DEFAULT_USER=shop -e RABBITMQ_DEFAULT_PASS=shop rabbitmq:3.7.7-management运行命令解析
- -v
pwd
/data:/var/lib/rabbitmq
// -v 挂载本地volume到容器内部 ,将数据保存到本地。 - -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=shop -e RABBITMQ_DEFAULT_PASS=shop
我创建的用户能够访问的用户空间 my_host 以及用户名, 用户密码 - rabbitmq:3.7.7-management 为了我们能够看到我们相关的信息流,我们使用带管理页面的镜像
- 跑起来后我们访问 localhost:15672 即可查看相关的信息 。
镜像我们可以去dockerhub 查看 rabbit 带management的 镜像版本 可以不用本地先pull
- -v
如何查看能否连上rabbit_mq
- 一个小demo spring-boot
appliction.yml
1
2
3
4
5
6
7spring:
rabbitmq:
host: localhost
username: shop
password: shop
port: 5672
virtual-host: my_vhost # shop 用户的工作空间,对应我们上面的设置,当前用用户只允许你在这个目录下运行,我是这么理解的,只要能用就行项目入口以及队列的设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17import org.springframework.amqp.core.Queue;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
public Queue Queue() {
return new Queue("hello"); // 设置一个队列
}
}设置一个发送者
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* @author liliangbin dumpling1520@gmail.com
* @date 2019/6/20 13:10
**/
public class HelloSender {
private AmqpTemplate rabbitTemplate;
public void send() {
String context = "hello " + new Date(); // 我们的发送内容可以是一个类 但是最好能够继承实现seriarl 的那个类,具体是啥我忘了,大概是这个写的。序列化的那个类 还是接口
System.out.println("Sender : " + context);
this.rabbitTemplate.convertAndSend("hello", context); //发送
}
}接收者 ,可以是不同的主机,我们把他卸载一个包里面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22package com.example.demo;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
/**
* @author liliangbin dumpling1520@gmail.com
* @date 2019/6/20 13:11
**/
"hello") //监听某一个接口 (queues =
public class HelloReceiver {
public void process(String hello) {
System.out.println("Receiver : " + hello);
}
}