type
Post
status
Published
date
Jul 28, 2022
slug
article-12
summary
Docker 实战演示
tags
容器操作
运维
docker
category
技术分享
icon
password
Property
Jul 28, 2022 10:12 AM

docker 部署 Nginx

Docker安装Nginx
 docker search nginx 搜索镜像  docker pull nginx 下载最新版Nginx镜像  docker run -d --name="Nginx01" -p 3344:80 nginx 启动容器  测试:  ➜ / curl localhost:3344  welcome nginx ...

docker 部署 Tomcat

 # 官方使用方法(docker run时如果没有镜像,   自动pull)  docker run -it --rm tomcat:9.0  # 参数解释  --rm 退出容器时自动删除容器(常用于做测试)  # 常规方式:  docker pull tomact  docker run -d -p 3355:80 --name="tomcat01" tomcat 新建容器  docker exec -it tomcat01 /bin/bash 进入容器    # 发现问题  # 1. linux命令少了 2. webapps没有  # 原因: 阿里云镜像默认是最小的镜像, 所有不必要的都剔除, 保证最小可运行

docker 部署 ES+kibana

ES安装
 ES : elasticsearch  docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag    # es 暴露的端口很多  # es 十分消耗内存  # es 的数据一般需要放置到安全目录! 挂载  # --net somenetwork 网络配置    # 下载并启动elasticsearch  docker run -d --name elasticsearch01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2    # 启动后 linux 会非常卡 docker stats 查看cpu状态  # 关闭容器, 添加内存限制  # 修改配置文件 -e 环境配置修改  docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="Xms64m -Xmx512m" elasticsearch:7.6.2
 ➜ / curl localhost:9200  {    "name" : "97c672681d58",    "cluster_name" : "docker-cluster",    "cluster_uuid" : "rWfW9B7mR_6VT8GJtXUyqg",    "version" : {      "number" : "7.6.2",      "build_flavor" : "default",      "build_type" : "docker",      "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",      "build_date" : "2020-03-26T06:34:37.794943Z",      "build_snapshot" : false,      "lucene_version" : "8.4.0",      "minimum_wire_compatibility_version" : "6.8.0",      "minimum_index_compatibility_version" : "6.0.0-beta1"   },    "tagline" : "You Know, for Search"  }
kibana安装
 安装与 elasticsearch 相同版本的 kibana  $ docker run -d --name kibana -p 5601:5601 kibana:7.6.2  #浏览器访问http://192.168.138.129:5601, 可以查看到kibana 页面,可以访问成功
配置kibanan连接es
 # 停止正在运行的es和kibana  ➜ / docker rm -f $(docker ps -aq)  5deda3f22ae5  6a6c08769d1b  # 新建es数据和配置目录  ➜ / mkdir -p /mydata/elasticsearch/{config,data}  # 新建并写入配置文件  ➜ / echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml  ➜ / cd /mydata/elasticsearch  ➜ elasticsearch ls  config data  ➜ elasticsearch cat config/elasticsearch.yml  http.host: 0.0.0.0  #配置完成, 执行命令启动elasticsearch并挂载配置文件到虚拟机目录:  -p 9200:9200 -p 9300:9300 开发映射端口  -e ES_JAVA_OPTS="-Xms64m -Xmx128m" 设置es占用内存 最大128m 以后设置  -v 挂载目录并启动容器  -e "discovery.type = single-node" 设置单机模式运行
测试:
 docker run -d --name elasticsearch01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -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 elasticsearch:7.6.2

实战MySql同步数据

 # 获取镜像  docker pull mysql    # 运行容器, 需要做数据挂载  docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mushan --name mysql01 mysql:latest  # 解释  -d 后台运行  -p 暴露端口  -v 挂载路径(实现数据同步)   可同时挂载多个路径, 这里分别对应mysql配置文件和数据文件  --name 容器名    -e MYSQL_ROOT_PASSWORD 初次登入mysql需要设置一个密码, 通过这个参数设定初始密码
使用Navicat Premium或SQLyog等工具连接MySql
notion image
可以成功连接! 容器创建成功
修改内容测试是否成功数据挂载
notion image
在Navicat Premium中新建数据库
 # 修改前  ➜ data ls   auto.cnf       ca-key.pem           ib_buffer_pool   mysql               server-key.pem   binlog.000001   ca.pem               ibdata1         mysql.ibd           sys   binlog.000002   client-cert.pem     ib_logfile0     performance_schema   undo_001   binlog.000003   client-key.pem       ib_logfile1     private_key.pem     undo_002   binlog.000004  '#ib_16384_0.dblwr'   ibtmp1           public_key.pem   binlog.index   '#ib_16384_1.dblwr'  '#innodb_temp'   server-cert.pem  # 修改后   ➜ data ls   auto.cnf       ca-key.pem          '#ib_16384_1.dblwr'  '#innodb_temp'       server-cert.pem   binlog.000001   ca.pem               ib_buffer_pool       mysql               server-key.pem   binlog.000002   ceshi               ibdata1             mysql.ibd           sys   binlog.000003   client-cert.pem     ib_logfile0         performance_schema   undo_001   binlog.000004   client-key.pem       ib_logfile1         private_key.pem     undo_002   binlog.index   '#ib_16384_0.dblwr'   ibtmp1               public_key.pem  # 变化: 多了一个 ceshi 文件
证明挂载同步成功, 数据同步到了服务器中
docker rm -f 删除容器后数据仍然保留在主机中

实战 : 创建自己的centos

Docker Hub 中 99% 的镜像都是从基础镜像 FROM scratch 中来的
  1. 创建dockerfile
    1.  FROM centos  MAINTAINER mushan<2532379497@qq.com>    ENV MYPATH /usr/local  WORKDIR $MYPATH    RUN yum -y install vim  RUN yum -y install net-tools    EXPOSE 80    CMD echo $MYPATH  CMD echo "----end----"  CMD ["/bin/bash"]
Docker 全精通解决JetBrains全家桶报错无法正常启动

  • Valine
  • Giscus