Docker 学习笔记—部署常用容器

114 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情

Docker 应用部署

MySQL

  1. 查询 MySQL 镜像

    docker search mysql
    
  2. 拉取 MySQL 镜像,以 MySQL 5.7 版本为例

    docker pull mysql:5.7
    
  3. 创建 MySQL 容器

    docker run -di --name=[容器名] -p [主机端口]:[容器端口] -e MYSQL_ROOT_PASSWROD=[管理员账户密码] [镜像名称]:[版本]
    
    docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
    

    -di:守护方式创建容器

    -p:主机与容器的端口映射

    -e:直接设置容器的用户名密码

  4. 进入 MySQL 容器命令行

    docker exec -it [容器名] /bin/bash
    
    docker exec -it mysql /bin/bash
    
  5. 在 MySQL 容器中进行操作(以下命令皆是在==容器的命令行【root@b2494be91470:/#】==执行)

    1. 登录 MySQL

      mysql -uroot -proot --default-character-set=utf8
      
    2. SQLYog 连接容器中的 MySQL

      image-20211228121755297

  6. 到此 MySQL 容器就部署完成了

Nginx

  1. 查询 Nginx 镜像

    docker search nginx
    
  2. 拉取 Nginx 镜像

    docker pull nginx
    
  3. 创建 Nginx 容器

    docker run -di --name=[容器名] -p [主机端口]:[容器端口] [镜像名称]:[版本]
    
    docker run -di --name=nginx -p 80:80 nginx
    

    -di:守护方式创建容器

    -p:主机与容器的端口映射

  4. Windows 浏览器访问 【主机IP地址:80 】

    image-20211228122808101

  5. 到此 Nginx 容器就部署完成了

  6. 修改 Nginx 容器的配置文件

    • 将容器中的 nginx 目录复制到主机,改完再复制回去

      docker cp [容器名/id]:[文件路径]
      
      docker cp [文件] [容器名/id]:[目录]
      
    • 将容器目录挂载到主机(需要在创建容器的时候挂载)

      docker run -di --name=容器名 -p [主机端口]:[容器端口] -v [主机目录]:[容器目录]  [镜像名称]:[版本]
      
      docker run -di --name=nginx -p 80:80 -v /usr/local/mydata/conf/:/etc/nginx nginx
      

Redis

  1. 查询 Redis 镜像

    docker search redis
    
  2. 拉取 Redis 镜像

    docker pull redis
    
  3. 创建 Redis 容器

    docker run -di --name=[容器名] -p [主机端口]:[容器端口] [镜像名称]:[版本]
    
    docker run -di --name=redis -p 6379:6379 redis
    

    -di:守护方式创建容器

    -p:主机与容器的端口映射

  4. 使用 Another Redis Desktop Manager 连接 Redis

    1. 输入主机 IP 地址与容器映射的端口号,点击 OK

      image-20211228131556117

    2. 成功连接,查看信息

      image-20211228131729411

  5. 到此 Redis 容器就部署完成了

  6. 修改 Redis 容器的配置文件

    • 将容器中的 Redis 目录复制到主机,改完再复制回去

      docker cp [容器名/id]:[文件路径]
      
      docker cp [文件] [容器名/id]:[目录]
      
    • 将容器目录挂载到主机(需要在创建容器的时候挂载)

      docker run -di --name=容器名 -p [主机端口]:[容器端口] -v [主机目录]:[容器目录]  [镜像名称]:[版本]
      

RabbitMQ

  1. 查询 RabbitMQ 镜像

    docker search rabbitmq
    
  2. 拉取 RabbitMQ 镜像(以 3.7.12 版本为例)

    docker pull rabbitmq:3.7.12
    
  3. 创建 RabbitMQ 容器

    docker run -di --name=[容器名] -p [主机端口]:[容器端口] [镜像名称]:[版本]
    
    docker run -di --name=rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 15671:15671 -p 15672:15672 rabbitmq:3.7.12
    

    -di:守护方式创建容器

    -p:主机与容器的端口映射

  4. 进入容器,启动 UI 插件

    docker exec -it rabbitmq /bin/bash
    
    rabbitmq-plugins enable rabbitmq_management
    
  5. 浏览器访问【主机IP地址:15672 】

    image-20211228135338096

    登录

    image-20211228135433901

  6. 到此 RabbitMQ 容器就部署完成了

Elasticsearch

  1. 查询 Elasticsearch 镜像

    docker search elasticsearch
    
  2. 拉取 Elasticsearch 镜像(以 7.5.0 版本为例)

    docker pull elasticsearch:7.5.0
    
  3. 修改虚拟内存大小

    sysctl -w vm.max_map_count=262144
    
  4. 创建 Elasticsearch 容器

    docker run -di --name=elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "cluster.name=elasticsearch" -v /usr/local/mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins elasticsearch:7.5.0
    

    -e "discovery.type=single-node":设置单节点

    -e "cluster.name=elasticsearch":设置集群名

  5. 进入 Elasticsearch 容器,安装 IK 分词器

    docker exec -it elasticsearch /bin/bash
    
    elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.5.0/elasticsearch-analysis-ik-7.5.0.zip
    
  6. 退出 Elasticsearch 容器,重启 Elasticsearch 容器

    exit
    
    docker restart elasticsearch
    
  7. 浏览器访问【主机IP地址:9200】

    image-20211228143434466

  8. 到此 Elasticsearch 容器就部署完成了

Zookeeper

  1. 查询 Zookeeper 镜像

    docker search zookeeper
    
  2. 拉取 Zookeeper 镜像(以 3.4.13 版本为例)

    docker pull zookeeper:3.4.13
    
  3. 创建 Zookeeper 容器

    docker run -di --name=zookeeper -p 2181:2181 zookeeper:3.4.13
    
  4. 到此 Zookeeper 容器就部署完成了