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

可以成功连接! 容器创建成功
修改内容测试是否成功数据挂载

在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 中来的
- 创建dockerfile
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"]
- Author:mushan
- URL:https://blog.mushan.xyz/article/article-12
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts