云原生技术基石---容器化技术知识分享之Docker的简单使用(二)

什么是Docker

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。docker容器是相互隔离的,每个容器都可以理解成一个极小的操作系统,里边运行着我们镜像。

docker有什么好处

  • 将代码运行环境独立打包成镜像,屏蔽开发环境和生产环节不一致的问题
  • 快速启动一个应用程序,容器启动只需要几秒
  • 额外的资源消耗较小,相比传统的vm会小一些
  • 适合轻量级的应用程序

docker有什么缺点

  • 不适合数据库类型的业务使用,比如,如果你把生产环节的MySQL丢到docker中运行,那么。你大概率会被开除
  • 因为容器使用的是宿主机的内核,如果一个容器把cpu使用到100%,其他容器在运行时,也会受到响应的性能影响
  • 安全方面的问题,因为是共享内核,所以,镜像一定要自己制作,否则从镜像发起攻击,嘿嘿。。。

docker核心概念

镜像(image):一个镜像代表一个软件。比如mysql镜像,redis镜像…
容器(container):基于某个镜像启动的一个服务称之为容器,可以基于同一个镜像启动多个不同的容器
仓库(repository):存储docker中所有镜像
远程仓库:docker提供的一个仓库,可以拉取镜像到本地仓库。
本地仓库:本地存储下载好的镜像的位置

Linux中使用yum安装Docker

# 准备docker yum 源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

# 清空缓存
yum clean all
# 构建yum缓存信息
yum makecache -y

# 下载并安装docker
yum install docker -y

# 修改docker加速器地址,搜集了一大堆地址。。。。。。
cat > /etc/docker/daemon.json << EOF
{
    "registry-mirrors": [
        "https://1nj0zren.mirror.aliyuncs.com",
        "https://kfwkfulq.mirror.aliyuncs.com",
        "https://2lqq34jg.mirror.aliyuncs.com",
        "https://pee6w651.mirror.aliyuncs.com",
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn",
        "http://f1361db2.m.daocloud.io",
        "https://registry.docker-cn.com"
    ]
}
EOF
# docker 开始运行
systemctl start docker

docker常见的基本命令

  • 创建容器
docker run -d --name 容器名称 -v 宿主机存储数据路径:docker内部路径 -p 宿主机端口:docker端口
  • 查看全部容器信息
docker ps -a
  • 查看某个容器的详细信息
docker inspect 容器ID(通过 docker ps -a 获取)
  • 停止某个容器
docker container stop 容器ID(通过 docker ps -a 获取)
  • 启动某个容器
docker start 容器ID(通过 docker ps -a 获取)
  • 删除某个容器
docker container rm 容器ID(通过 docker ps -a 获取)
  • 进入容器控制台
docker exec -ti 容器ID /bin/bash
  • 退出容器控制台
ctrl+d

常用的 docker 容器


# mysql,账号root,密码123456
docker run --memory-swap=-1 --name docker-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d centos/mysql-57-centos7

# elasticsearch
docker run --memory-swap=-1 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name docker-elasticsearch-7.10.1 docker.elastic.co/elasticsearch/elasticsearch:7.10.1

# ik分词器(需要进入es容器内进行安装)
# ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.1/elasticsearch-analysis-ik-7.10.1.zip

# kibana(需要进入docker容器内部修改kibana.yml,重新指定es地址,也可以创建自定义网络组,使用别名通信,参考下面solr-cloud搭建)
docker run --memory-swap=-1 -p 5601:5601 --name docker-kibana-7.10.1 docker.elastic.co/kibana/kibana:7.10.1

# zookeeper
docker run --memory-swap=-1 -d -p 2181:2181 --name docker-zookeeper zookeeper

# redis
docker run --memory-swap=-1 -d -p 6379:6379 --name docker-redis redis

# ldap
docker run -itd -p 389:389 --name openldap \
--env LDAP_ORGANISATION="lcy" \
--env LDAP_DOMAIN="jlxxw.net" \
--env LDAP_ADMIN_PASSWORD="123456" \
--detach osixia/openldap:1.4.0

# mongdb
docker run --name dpcker-mongo -p 27017:27017  -d mongo:4.4.10 --wiredTigerCacheSizeGB 1


# 通过网络别名搭建solr-cloud集群
docker network create solr-cloud-net

# 命令结构示例
# docker run -it --name <容器名>  --network-alias <网络别名> <镜像名>

# zk需要补充集群参数,这个只能进入到容器进行设置
# server.1=docker-zookeeper-3.4.14-master:2888:3888
# server.2=docker-zookeeper-3.4.14-follower-1:2888:3888
# server.3=docker-zookeeper-3.4.14-follower-2:2888:3888

docker run -ti -p 2181:2181 --name docker-zookeeper-3.4.14-master --network solr-cloud-net --network-alias docker-zookeeper-3.4.14-master zookeeper-3.14 /bin/bash
docker run -ti -p 2182:2181 --name docker-zookeeper-3.4.14-follower-1 --network solr-cloud-net --network-alias docker-zookeeper-3.4.14-follower-1 zookeeper-3.14 /bin/bash
docker run -ti -p 2183:2181 --name docker-zookeeper-3.4.14-follower-2 --network solr-cloud-net --network-alias docker-zookeeper-3.4.14-follower-2 zookeeper-3.14 /bin/bash

docker run -ti -p 8983:8983 --name solr-cloud-7.5-1 --network solr-cloud-net --network-alias solr-cloud-7.5-1 solr-7.5 /bin/bash
docker run -ti -p 8984:8983 --name solr-cloud-7.5-2 --network solr-cloud-net --network-alias solr-cloud-7.5-2 solr-7.5 /bin/bash
docker run -ti -p 8985:8983 --name solr-cloud-7.5-3 --network solr-cloud-net --network-alias solr-cloud-7.5-3 solr-7.5 /bin/bash

# 分别进入每个solr节点,修改bin/solr.in.sh
# ZK_HOST="docker-zookeeper-3.4.14-master:2181,docker-zookeeper-3.4.14-follower-1:2181,docker-zookeeper-3.4.14-follower-2:2181"
# 执行solr启动命令
# ./solr start

你可能感兴趣的:(云原生,云计算,docker,云原生,容器)