上文 使用Feign进行应用间通信
下文 统一配置
由于之后的学习会使用到Docker,我还没有接触过,所以开始学习。
我只记录安装使用的过程和遇到的问题,关于什么Docker的思想,解决的问题,我也并不了解:)
Windows 下的安装
首先我从官网下载了 Docker for Windows Installer,地址
https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe
我使用的是 Windows10 系统,然而,安装时它告诉我
Docker for Windows requires Windows 10 Pro or Enterprise version 14393, or Windows server 2016 RTM to run
原来不只需要Win10 还需要 专业版或者企业版,我的系统是OEM的家庭版:(
以后还是要装专业版操作系统啊,虽然那样是盗版,,
好了,对于非Win10 14393版本以上的专业版和企业版操作系统,需要选择使用Docker Toolbox,下载地址 https://download.docker.com/win/stable/DockerToolbox.exe
Linux 下的安装
方式1
引用:https://www.imooc.com/article/16448
#检查内核版本,需内核版本3.10以上,否则请搜索升级方法
$ uname -r
3.10.0-693.2.2.el7.x86_64
# 确保yum 更新到最新
$ yum update
# 安装需要的软件包
$ yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置yum源
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ curl -fsSL https://get.docker.com/ | sh
# 安装docker
$ yum install -y docker-ce
#启动服务
$ systemctl start docker.service
方式2
引用 https://yq.aliyun.com/articles/548221?spm=5176.10695662.1996646101.searchclickresult.3d687507niSVo0
# 使用 sudo 或 root 权限登录 Centos。
# 检查内核版本,需内核版本3.10以上,否则请搜索升级方法
$ uname -r
>3.10.0-693.2.2.el7.x86_64
# 确保 yum 包更新到最新。
$ sudo yum update
# 执行 Docker 安装脚本。执行这个脚本会添加 docker.repo 源并安装 Docker。
$ curl -fsSL https://get.docker.com/ | sh
# 启动 Docker 进程。
$ service docker start
# 验证 docker 是否安装成功并在容器中执行一个测试的镜像。
$ sudo docker run hello-world
第一个Docker镜像
命令
拉取镜像 docker pull [OPTIONS] name[:TAG]
查看镜像 docker images [OPTIONS] [REPOSITORY[:TAG]]
(不指定参数则查看所有)
运行镜像 docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]
运行本地不存在的image会尝试从服务器上下载
查看当前运行的容器 docker ps
# 获取 运行第一个docker镜像
$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for hello-world:latest
# 查看当前docker中的镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest e38bc07ac18e 7 weeks ago 1.85kB
# 运行 hello world
docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
······
获取、运行、停止一个nginx镜像
#获取nginx
$ docker pull nginx
# -d:后台运行nginx 并返回其容器ID -p系统8080端口映射docker容器80端口
$ docker run -d -p 8080:80 nginx
#进入镜像内部 执行命令 CONTANTER ID不必完整,只要能确定一个容器即可
$ docker exec -it [CONTANTER ID] bash
#停止一个容器
$ docker stop [CONTANTER ID]
#强制停止一个容器
$ docker kill [CONTANTER ID]
安装 运行 RabbitMQ
#不执行pull 直接 run 会自动下载指定版本
$ docker run -d --hostname my-rabiit -p 5672:5672 -p 15672:15672 rabbitmq:3.7.5-management
f2c534dcadf0f97fc3f638fe4f8f1bfae30a32c186e1deac3f3c1126b9fe25c2
由于我的rabbtmq不在本地,访问 地址:15672端口提示要输入账号密码
#进入此容器
$ docker exec -it f2c53 bash
-----以下在容器中操作-----
#添加用户
$ rabbitmqctl add_user admin 123456
#添加权限
$ rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
#修改角色
$ rabbitmqctl set_user_tags admin administrator
安装 运行 mysql
$ docker pull mysql:5.7
$ docker run -p 3306:3306 --name my-mysql \
-v $PWD/conf:/etc/mysql/conf.d\
-v $PWD/logs:/logs\
-v $PWD/data:/var/lib/mysql\
-e MYSQL_ROOT_PASSWORD=123456\
-d mysql:5.7
命令说明:
- -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
- -v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
- -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
- -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
- -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
- -d:后台运行