阿里云ECS之厉害了我的云
一 前言及自我介绍
我是一名2021年进入大学的一名新生,所读的专业是软件工程,由于哥哥是一名java开发的程序员,所有我了解到了阿里云的“飞天加速计划·高校学生在家实践”。同时,也在他的影响学习了软件相关的技术,希望自己能在软件开发这条路上有所成就。
我使用阿里云ECS主要是基于docker使用,自己所常用的服务也会打包成docker镜像,然后基于docker环境部署。
二 docker 安装
Docker文档:https://docs.docker.com/
Dcker中文文档:https://docs.docker-cn.com/
- docker是一种镜像技术,从系统环境开始,自底至上打包应用,达到应用程序无缝接轨运作。解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
docker理念
- Docker是基于Go语言实现的云开源项目。
- Docker是一个开源的容器引擎,它可以帮助我们更快地交付应用。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用Docker,可更快地打包、测试以及部署应用程序,并可减少从编写到部署运行代码的周期。
- Docker的主要目标是“Build, Ship and Run Any App,Anywhere",也就是通过对应用组件的封装、分发、部署、运行等生命周期的管 理,使用户的APP (可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。
- Linux容器技术的出现就解决了这样一个问题,而Docker就是在它的基础上发展过来的。将应用运行在Docker容器上面,而Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作.
docker安装
CentOS6
yum install -y epel-release
(Docker使用EPEL发布, RHEL系的OS首先要确保持有EPEL仓库,否則先检査〇S的版本,然后安装相应的EPEL包。)yum install -y docker-io
(安装)- 安装后的配置文件:
/etc/sysconfig/docker
- 启动Docker后台服务:
service docker start
docker version
验证
CentOS7
- 参考官方文档:https://docs.docker.com/install/linux/docker-ce/centos/
1.安装所需的包。
yum-utils
提供了yum-config-manager
效用,并device-mapper-persistent-data
和lvm2
由需要devicemapper
存储驱动程序。sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.使用以下命令设置稳定存储库。即使您还想从边缘或测试存储库安装构建,您始终需要稳定的存储 库。(大坑:改成阿里云或网易云)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 不用上面那个,用下面的阿里云 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装最新版本的Docker CE
sudo yum install docker-ce
启动 docker
systemctl start docker
docker
通过运行hello-world
镜像验证是否已正确安装。sudo docker run hello-world
使用和优化
使用
- run: docker run xxx
优化
阿里云加速:
- mkdir -p /etc/docker
vim /etc/docker/daemon.json
## 阿里云 { "registry-mirrors": ["https://6tb1s4ez.mirror.aliyuncs.com"] }
- systemctl daemon-reload
- systemctl restart docker
三 docker安装mysql5.7
- 搜索:
docker search mysql
- 拉取:
docker pull mysql:5.7
运行
- 命令
docker run -p 3306:3306 --name mysql -v /module/mysql/conf:/etc/mysql/conf.d -v /hanguixian/mysql/logs:/logs -v /module/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xxxxx -d mysql:5.7
命令解释
-p 3306:3306
: 将主机的3306端口映射到docker容器的3306端口。--name mysql
: 运行服务名字-v /hanguixian/mysql/conf:/etc/mysql/conf.d
:将主机/hanguixian/mysql目录下的conf/my.conf挂载到容器的/etc/mysql/conf.d-v /hanguixian/mysqlogs:/logs
: 将主机Izzyyuse/mysqI目录下的logs目录挂载到容器的/logs。-v /hanguixian/mysql/data:/var/lib/mysql
:将主机/hanguixian/mysql目录下的data目录挂我到容器的/var/lib/mysql-e MYSQL_ROOT_PASSWORD=123456
: 初始化root用户的密码。-d mysql:5.7
:后台程序运行mysql5.7
四 docker安装solo博客
-- 登录mysql 创建这样一个数据库,名字叫solo
create database solo default character set utf8mb4 collate utf8mb4_general_ci;
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="xxxxxxxx" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://xxxx:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" \
b3log/solo --listen_port=xxxxx --server_scheme=http --server_host=xxxxx --server_port=xxxxx
- 启动参数说明:
--listen_port:进程监听端口,可以自定义修改
--server_scheme:最终访问协议,如果反代服务启用了 HTTPS 这里也需要改为 https
--server_host:最终访问域名或公网 IP,不要带端口
--server_port:最终访问端口,使用浏览器默认的 80 或者 443 的话值留空即可
完整启动参数的说明可以使用 -h 来查看。 - 注意:
JDBC_PASSWORD
也是指云服务器上mysql的root
用户密码 - 注意
--listen_port
,我这边设置监听的端口号是6000
,官方给的是8080
端口,因为我这边服务器上的8080
端口已经被Tomcat占用了,所以放行6000
端口的防火墙,也可以自定义其他端口
个人作品-solo博客
欢迎大家访问我的站点: http://8.130.167.3:9002