Centos从0开始教你安装docker并使用docker-compose编排mysql,elasticsearch,kibana, nacos,senti,redis, rabbitmq这一篇就够了

要不是阿里云太贵续费不起我也不会再从0开始配置555,之前白嫖了半年阿里云服务器,后来到期续费没想到那么贵,实在不想用了。1核1G一月都要三十四块,嘎嘎嘎,下面那么多应用跑在虚拟机上电脑一直嗷嗷叫,哎没法

0,买完云服务器需要重置下密码,默认登录名是root,密码好像是随机的。

1,为了外部能访问把你的安全组规则配置入站出战端口范围开放完都是1-65535我的是刚刚刚刚刚买的船新百度云服务器。
.注意:阿里云默认没有全部开启,之开启了几个必须端口,好像是之前勒索病毒的原因。你直接开放完就完事了。反正还有防火墙呢。

在这里插入图片描述

3,关闭防火墙,或者给防火墙开启指定端口,我选择给防火强开启指定的端口,如果省事就直接关闭防火墙就行了,不过可能会中病毒,我上台阿里云服务器就被植入了蠕虫病毒,最后重置了一下才搞定

1, 查询指定端口防火墙是否对外开放了,例如查看MySQL默认端口3306是否对外开放
firewall-cmd --query-port=3306/tcp
提示 yes,表示开启;no表示未开启。

2, 添加要开放的端口号
首先添加指定需要开放的端口:
firewall-cmd --add-port=3306/tcp --permanent
--permanent表示永久开启,而不是暂时性的
然后重载入添加的端口:
firewall-cmd --reload

4, 主菜开吃,安装Docker
(1) yum 包更新到最新,我的是centos 7.6 就不用更新了。6的小伙伴更新一下

yum update

(2)安装yum-utils:

yum install -y yum-utils device-mapper-persistent-data lvm2Copy

在这里插入图片描述
(3)设置yum源为阿里云

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述
(4)安装docker ce表示社区版本

yum install docker-ce

(5)配置国内镜像,就和maven仓库一样,官方的下载速度太慢

vi /etc/docker/daemon.json 
在该文件中输入如下内容:
{
     
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

(6)启动docker 并设置开机自启

查看docker状态
systemctl status docker
开启docker
systemctl start docker
设置docker开机自启
systemctl enable docker

5,docker安装成功后,我们安装Docker-Compose软件,能够编排多个容器,一键下载和启动:

(1)互联网方式安装

curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#修改该文件的权限为可执行:
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose --version

(2)本地安装, 上传 docker-compose

#移动到指定位置,移动到此文件夹就相当于配置了环境变量,在任何地方都能启动
mv docker-compose  /usr/local/bin/docker-compose
#修改该文件的权限为可执行:
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose --version

(3)我们在/usr/local目录下创建mydocker文件夹作为工作空间
在这里插入图片描述

6,有了剧本后,你如果没有对应镜像,会自动拉取
(1)在此之前我们需要先把nginx.conf放到mydocker文件夹中,因为编排时我安装了fastdfs需要nginx配置文件

vi /usr/local/mydocker/nginx.conf

#user  nobody;
worker_processes  1;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       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  logs/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;
 
    #gzip  on;
 
    server {
        listen       8080;
        server_name  localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location /group1/M00 {
            root /fastdfs/storage/data;
            ngx_fastdfs_module;
        }
 
        #error_page  404              /404.html;
 
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 }
}

(2)开始配置编排软件的配置文件,配置到底要下载什么版本镜像,运行什么容器,按什么顺序运行等
vi /usr/local/mydocker/docker-compose.yml

version: '3'
services:
  mysql:
    image: mysql:5.7
    container_name: mysql
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root #设置root帐号密码
    ports:
      - 3306:3306
  redis:
    image: redis
    container_name: redis
    command: redis-server --appendonly yes
    restart: always
    ports:
      - 6379:6379
  rabbitmq:
    image: rabbitmq:management
    container_name: rabbitmq
    restart: always
    ports:
      - 5672:5672
      - 15672:15672
  elasticsearch:
    image: elasticsearch:6.8.1
    container_name: elasticsearch
    restart: always
    environment:
      - "cluster.name=elasticsearch" #设置集群名称为elasticsearch
      - "discovery.type=single-node" #以单一节点模式启动
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小
    ports:
      - 9200:9200
  kibana:
    image: kibana:6.8.1
    container_name: kibana
    restart: always
    links:
      - elasticsearch:es #可以用es这个域名访问elasticsearch服务
    depends_on:
      - elasticsearch #kibana在elasticsearch启动之后再启动
    environment:
      - "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址
    ports:
      - 5601:5601
  nacos:
    image: nacos/nacos-server
    container_name: nacos
    restart: always
    environment:
      - MODE=standalone
    ports:
      - 8848:8848
  sentinel:
    image: bladex/sentinel-dashboard
    container_name: sentinel
    restart: always
    ports:
      - 8858:8858
  fastdfs-tracker:
    hostname: fastdfs-tracker
    container_name: fastdfs-tracker
    image: season/fastdfs:1.2
    restart: always
    network_mode: "host"
    command: tracker
    volumes:
      - ./tracker_data:/fastdfs/tracker/data
  fastdfs-storage:
    hostname: fastdfs-storage
    container_name: fastdfs-storage
    image: season/fastdfs:1.2
    restart: always
    network_mode: "host"
    volumes:
      - ./storage_data:/fastdfs/storage/data
      - ./store_path:/fastdfs/store_path
    environment:
      - TRACKER_SERVER=192.168.200.130:22122
    command: storage
    depends_on:
      - fastdfs-tracker
  fastdfs-nginx:
    hostname: fastdfs-nginx
    container_name: fastdfs-nginx
    image: season/fastdfs:1.2
    restart: always
    network_mode: "host"
    volumes:
      - ./nginx.conf:/etc/nginx/conf/nginx.conf
      - ./store_path:/fastdfs/store_path
    environment:
      - TRACKER_SERVER=192.168.200.130:22122
    command: nginx
    depends_on:
      - fastdfs-tracker

容器启动的顺序从上到下,依次是mysql,redis,rabbitmq,elasticsearch,kibana,nacos,sentinel,fastdfs。
可以看到我们配置了镜像版本,容器名称,是否自启,mysql字符编码和密码。如果本地没有镜像,会自动拉取

7,最后,运行可执行文件docker-compose,并指定其配置文件docker-compose.yml(不指定也行,默认就是这个)

docker-compose up -d
或
docker-compose up -d  -f docker-compose.yml

镜像拉取成功,并运行为容器后如下:
Centos从0开始教你安装docker并使用docker-compose编排mysql,elasticsearch,kibana, nacos,senti,redis, rabbitmq这一篇就够了_第1张图片
如果不放心可使用docker ps -a进行查看
Centos从0开始教你安装docker并使用docker-compose编排mysql,elasticsearch,kibana, nacos,senti,redis, rabbitmq这一篇就够了_第2张图片
8,如果你真的就只是想单纯的运行一个容器的话你可以在docker安装成功后执行:
(1)拉取镜像

docker pull mysql:5.7

(2)运行容器,并设置自启,设置密码为root,设置字符编码为u8

-i表示表示运行容器
-d表示守护式/后台运行
–name :为创建的容器命名
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQLROOTPASSWORD 是root用户的登陆密码
–restart=always表示总是自启
-v表示文件映射
–character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci设置字符编码

docker run -d -p 3306:3306 --name mysql -u root --restart=always -v /home/mysql/conf:/etc/mysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root  mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

好了,没了。

删除容器
1,先列出有哪些容器(列出所有的):docker ps -a
显示所有容器:docker ps -a
只显示容器ID:docker ps -q
2,要先暂停容器,才能删除:
暂停所有容器:docker stop $(docker ps -aq)
暂停单个容器:docker stop < CONTAINER ID >
3,删除容器:
删除所有容器:docker rm $(docker ps -aq)
删除单个容器:docker rm < CONTAINER ID >
强制删除 -f, --force:docker rm -f < CONTAINER ID >
删除指定链接-l, --link:docker rm -l < CONTAINER ID >
删除容器关联数据卷-v --volumes:docker rm -v < CONTAINER ID >
4,删除所有容器,无论时运行还是不运行
docker ps -a能显示所有docker实例的状态,包含已经退出了的
加上-q参数,只显示container id
使用这个命令,把docker ps -aq产生的输入作为输入传入到docker rm命令,达到删除所有容器实例的效果。
docker rm $(docker ps -aq)
删除镜像
1,列出镜像:docker images
2,删除镜像:
删除单个镜像:docker rmi < IMAGE ID >
删除所有镜像:docker rmi $(docker images -q)
遇见关联镜像删除不了时,强制删除:docker rmi -f $(docker images -q)

你可能感兴趣的:(云服务器,docker,linux,java)