配置云服务器环境


  • 端口映射记录
    aliyun_ESC暴露端口 -> guli_environment容器内监听端口 : 说明
    20000 -> 8848 : nacos
    20001 -> 3306 : mysql
    20002 -> 6379 : redis
    20003 -> 22   : ssh
    20004 -> 9200 :ElasticSearch
    20005 -> 80   : nginx
    

配置云服务器环境

1、docker 创建ubuntu容器

  • 创建容器, 其中--privileged能赋予容器更多权限,好让容器内的docker使用主机的守护进程
    docker run --privileged -p 20000:8848 -p 20001:3306 -p 20002:6379 -p 20003:22 --name guli_environment -itd ubuntu:20.04
    
  • 进入容器,注意/bin/bash必须在
    docker exec -it guli_environment /bin/bash
    
  • 由于容器是轻量级了,需要安装一些依赖
    apt-get update
    apt-get install sudo
    apt-get install openssh-server
    apt-get install vim
    apt-get install tmux
    
  • 安装docker: 推荐博客
  • 启动服务: 推荐博客
    sudo service docker restart
    sudo service docker status 
    
    显示如下结果就成功了:

2、给ubuntu容器添加新用户

  • 添加用户asc
    adduser asc
    
  • 给用户分配sudo权限
    usermod -aG sudo asc
    

3、由于后面基本都是在这个ubuntu容器上部署服务,所以配置一下ssh免密登录

  • 将你的设备信息公钥写在~/.ssh/authorized_keys
  • 注意一定要确保主机ubuntu容器启动,且该容器内ssh启动,还要确保端口映射正确
    service ssh status
    service ssh restart
    
  • 注意给asc用户也配置以下免密登录,方法是相同的。
  • 同时在当前用户asc下,将用户添加到 docker 用户组中 (注意执行下面命令后要退出重进才能生效)
    sudo usermod -aG docker $USER
    

4、正式开始部署服务

mysql

docker pull mysql:5.7
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
  • 添加配置文件
vim /mydata/mysql/conf/my.cnf
  • 配置信息如下:
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

redis

docker pull redis

添加redis配置文件

mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf

设置Redis持久化

vim /mydata/redis/conf/redis.conf

在文件中添加

appendonly yes

nacos

docker pull nacos/nacos-server
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server

设置开机自启动

docker update mysql --restart=always
docker update redis --restart=always
docker update nacos --restart=always

5、添加新服务给容器开新的端口映射

  • 通过修改端口映射的配置文件来实现 (这个方法其实挺容易实现的)

    • 查看容器的端口映射情况,在容器外执行:(注意容器要启动才有结果)

      docker port guli_environment
      
    • 查看要修改容器的容器Id

      docker inspect guli_environment | grep Id
      

    • 停止容器

      docker stop guli_environment
      
    • 进入/var/lib/docker/containers目录下找到与Id相同的目录,修改hostconfig.jsonconfig.v2.json文件 (注意要切换到root用户)。

    • 停掉docker服务

      systemctl stop docker
      

      如果有警告可以试试下面的:

      systemctl stop docker.service
      systemctl stop docker.socket
      
    • 修改hostconfig.json,添加端口映射: (可以使用json格式化工具

      "9200/tcp": [{
        "HostIp": "",
        "HostPort": "20004"
      }]
      
    • 修改config.v2.json文件,在ExposedPorts后面添加

      "9200/tcp": {}
      
    • 启动docker

      systemctl start docker
      
    • 启动子容器guli_environment

      docker start guli_environment
      
    • 添加9200端口映射成功

      docker port guli_environment
      

    • 注意重启子服务后,要进入重启ssh和docker服务

      docker exec -it guli_environment /bin/bash
      
      service ssh start
      service docker start
      
  • 以下通过封装镜像的方式失败了,因为ESC空间不够

    • 在旧容器中将各docker服务停止
      docker stop mysql
      docker stop nacos
      docker stop redis
      
    • 在ESC中将环境所在容器停止
      docker stop guli_environment
      
    • guli_environment封装成镜像
      docker commit guli_environment guli_environment_image
      
    • 在anliyun控制台放行新端口,并重启ESC

6、安装ElasticSearch

  • 参考博客
  • 首先拉取ElasticSearch 和可视化工具 kibana
    docker pull elasticsearch:7.4.2
    docker pull kibana:7.4.2
    
  • 创建实例前,先创建用来同步配置和数据的文件夹
    mkdir -p /mydata/elasticsearch/config
    mkdir -p /mydata/elasticsearch/data
    
  • 配置配置文件,如果没有权限切换为root用户
    echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
    chmod -R 777 /mydata/elasticsearch/
    
  • 创建实例
    docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
    -e "discovery.type=single-node" \
    -e ES_JAVA_OPTS="-Xms64m -Xmx256m" \
    -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
    -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    -d elasticsearch:7.4.2
    
  • 创建Kibana实例
    • 由于服务器只有2g内存,所以就不配置这个了。
    docker run --name kibana -e ELASTICSEARCH_HOSTS=http://自己IP地址:9200 -p 5601:5601 -d kibana:7.4.2
    

7、安装Nginx

  • 参考博客
  • 先随便拉一个nginx
    docker run -p 80:80 --name nginx -d nginx:1.10
    
  • 创建目录/mydata/nginx
  • 将容器内配置文件拷贝到nginx目录下
    docker container cp nginx:/etc/nginx
    
  • 修改nginx目录名为conf,并放在新建的一个nginx目录下
    mv nginx conf
    mkdir nginx
    mv conf nginx/
    
  • 删除原来的nginx容器
  • 创建新的nginx容器
    docker run -p 80:80 --name nginx -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/logs:/var/log/nginx -v /mydata/nginx/conf:/etc/nginx -itd nginx:1.10
    
posted @ 2023-11-20 16:58  A_sc  阅读(21)  评论(0编辑  收藏  举报