Docker

Docker官方网址: https://docs.docker.com/ 英文地址
Docker中文网址: http://www.docker.org.cn/ 中文地址
Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotClouw公司。Docker 自开源后受到广泛的关注和讨论,目前已有多个相关项目,逐断形成了围Docker的生态体系。dotCloud 公司后来也改名为Docker Ine。

Docker是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。

Docker优点

简化程序

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

Docker安装

Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。企业版包含了一些收费服务,个人开发者一般用不到

Docker 要求 CentOS 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker

1、通过 uname -r 命令查看你当前的内核版本

uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum -y update

3、卸载旧版本(如果安装过旧版本的话)

yum remove docker docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

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

5、设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

7、安装docker (由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1)

sudo yum install -y docker-ce

8、启动并加入开机启动

systemctl start docker
systemctl enable docker

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

镜像相关命令

  1. 搜索镜像 # docker search java
    可使用 docker search命令搜索存放在 Docker Hub(这是docker官方提供的存放所有docker镜像软件的地方,类似maven的中央仓库)中的镜像。执行该命令后, Docker就会在Docker Hub中搜索含有 java这个关键词的镜像仓库。

    Docker Hub 官网https://hub.docker.com/search?q=java&type=image

  2. 下载镜像docker pull java:8
    使用命令docker pull命令即可从 Docker Registry上下载镜像,执行该命令后,Docker会从 Docker Hub中的 java仓库下载最新版本的 Java镜像。如果要下载指定版本则在java后面加冒号指定版本

  3. 列出镜像使用 docker images命令即可列出已下载的镜像

  4. 删除镜像 使用 docker rmi java 命令即可删除指定镜像
    docker rmi d23bdf5b1b1b

阿里镜像加速

详细参考: https://cr.console.aliyun.com/cn-hangzhou/mirrors

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://ljcuzwzw.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

容器相关命令

启动容器 docker run -d -p 81:80 nginx

在本例中,为 docker run添加了两个参数,含义如下:
-d 后台运行
-p 宿主机端口:容器端口 #开放容器端口到宿主机端口
访问 http://Docker宿主机 IP:81/,将会看到nginx的主界面如下:

需要注意的是,使用 docker run命令创建容器时,会先检查本地是否存在指定镜像。如果本地不存在该名称的镜像, Docker就会自动从 Docker Hub下载镜像并启动一个 Docker容器。

列出容器用 docker ps命令即可列出运行中的容器

查看容器的信息 docker inspect 3af5513d208e

构建自己的docker镜像

1、将jar包上传linux服务器/usr/local/dockerapp目录,在jar包所在目录创建名为Dockerfile的文件

2、在Dockerfile中添加以下内容

###指定java8环境镜像
FROM java:8
###复制文件到容器app-springboot
ADD docker-springboot-0.0.1.jar /app-springboot.jar
###声明启动端口号
EXPOSE 8080
###配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","/app-springboot.jar"]

使用docker build命令构建镜像
docker build -t docker-springboot-0.0.1 .
格式: docker build -t 镜像名称:标签 '.'Dockerfile的相对位置

docker run -p 8080:8080 docker-springboot-0.0.1

重启systemctl restart docker

关闭防火墙 systemctl stop firewalld

Docker卸载应用程序

先删除容器,在删除镜像

查询容器
docker ps –a
使用容器id删除容器
docker rm 18e672ecd8ed
查询镜像
docker images
使用镜像id删除镜像
docker rmi d23bdf5b1b1b

容器管理
进入到容(默认情况下软件安装的目录的/ect目录下Exit )

docker container exec -it f0b1c8ab3633 /bin/bash

停止Docker容器

docker stop  mynginx

MySQL安装

  • 查询mysql版本

     docker search mysql
    
  • 下载MySQL5.7版本(这里选择的是第一个mysql镜像, :5.7选择的5.7版本)

     docker pull mysql:5.7
    
  • 等待下载完成、创建MySQL容器

     docker run -p 3306:3306 --name mysql \-v /data/mysql/log:/var/log/mysql \-v /data/mysql/data:/var/lib/mysql \-v /data/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root  \-d mysql:5.7
    

    参数说明: -p 3306:3306:将容器的3306端口映射到主机的3306端口 -v
    /data/mysql/conf:/etc/mysql:将配置文件夹挂在到主机 -v
    /data/mysql/log:/var/log/mysql:将日志文件夹挂载到主机 -v
    /data/mysql/data:/var/lib/mysql/:将数据文件夹挂载到主机 -e
    MYSQL_ROOT_PASSWORD=root:初始化root用户的密码

  • 进入运行MySQL的docker容器:

     docker exec -it mysql /bin/bash
    
  • 使用MySQL命令打开客户端:

     mysql -uroot -proot --default-character-set=utf8
    

Redis安装

  • 下载Redis5.0的docker镜像:

     docker pull redis:5
    
  • 使用如下命令启动Redis服务:

     docker run -p 6379:6379 --name redis \-v /data/redis/data:/data \-d redis:5 redis-server --appendonly yes
    
  • 进入Redis容器使用redis-cli命令进行连接:

     docker exec -it redis redis-cli
    

Nginx安装

  • 下载Nginx1.10的docker镜像:

     docker pull nginx:1.10
    
  • 先运行一次容器(为了拷贝配置文件):

     docker run -p 80:80 --name nginx \-v /data/nginx/html:/usr/share/nginx/html \-v /data/nginx/logs:/var/log/nginx  \-d nginx:1.10
    
  • 将容器内的配置文件拷贝到指定目录:

     docker container cp nginx:/etc/nginx /data/nginx/
    
  • 修改文件名称

     mv nginx conf
    
  • 终止并删除容器:

     docker stop nginxdocker rm nginx
    
  • 使用如下命令启动Nginx服务:

     docker run -p 80:80 --name nginx \-v /data/nginx/html:/usr/share/nginx/html \-v /data/nginx/logs:/var/log/nginx  \-v /data/nginx/conf:/etc/nginx \-d nginx:1.10
    

RabbitMQ安装

  • 下载rabbitmq3.7.15的docker镜像:

     docker pull rabbitmq:3.7.15
    
  • 使用如下命令启动RabbitMQ服务:

     docker run -p 5672:5672 -p 15672:15672 --name rabbitmq \-d rabbitmq:3.7.15
    
  • 进入容器并开启管理功能:

     docker exec -it rabbitmq /bin/bashrabbitmq-plugins enable rabbitmq_management
    
  • 开启防火墙:

     firewall-cmd --zone=public --add-port=15672/tcp --permanentfirewall-cmd --reload
    

Elasticsearch安装

  • 下载Elasticsearch7.6.2的docker镜像:

     docker pull elasticsearch:7.6.2
    
  • 修改虚拟内存区域大小,否则会因为过小而无法启动:

     sysctl -w vm.max_map_count=262144
    
  • 使用如下命令启动Elasticsearch服务:

     docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \-e "discovery.type=single-node" \-e "cluster.name=elasticsearch" \-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \-v /data/elasticsearch/data:/usr/share/elasticsearch/data \-d elasticsearch:7.6.2
    
  • 启动时会发现/usr/share/elasticsearch/data目录没有访问权限,只需要修改/mydata/elasticsearch/data目录的权限,再重新启动即可:

     chmod 777 /mydata/elasticsearch/data/
    
  • 安装中文分词器IKAnalyzer,并重新启动:

     docker exec -it elasticsearch /bin/bash#此命令需要在容器中运行elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zipdocker restart elasticsearch
    
  • 开启防火墙:

     firewall-cmd --zone=public --add-port=9200/tcp --permanentfirewall-cmd --reload
    

    访问会返回版本信息:http://127.0.0.1:9200

Logstash安装

  • 下载Logstash7.6.2的docker镜像:

     docker pull logstash:7.6.2
    
  • 修改Logstash的配置文件logstash.conf中output节点下的Elasticsearch连接地址为es:9200,配置文件地址:https://github.com/macrozheng/mall/blob/master/document/elk/logstash.conf

     output {elasticsearch {hosts => "es:9200"index => "mall-%{type}-%{+YYYY.MM.dd}"}}
    
  • 创建/data/logstash目录,并将Logstash的配置文件logstash.conf拷贝到该目录:

     mkdir /mydata/logstash
    
  • 使用如下命令启动Logstash服务;

     docker run --name logstash -p 4560:4560 -p 4561:4561 -p 4562:4562 -p 4563:4563 \--link elasticsearch:es \-v /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \-d logstash:7.6.2
    
  • 进入容器内部,安装json_lines插件。

     logstash-plugin install logstash-codec-json_lines
    

Kibana安装

  • 下载Kibana7.6.2的docker镜像:

     docker pull kibana:7.6.2
    
  • 使用如下命令启动Kibana服务:

     docker run --name kibana -p 5601:5601 \--link elasticsearch:es \-e "elasticsearch.hosts=http://es:9200" \-d kibana:7.6.2
    
  • 开启防火墙:

     firewall-cmd --zone=public --add-port=5601/tcp --permanentfirewall-cmd --reload
    

    访问地址进行测试:http://127.0.0.1:5601

MongoDB安装

  • 下载MongoDB4.2.5的docker镜像:

     docker pull mongo:4.2.5
    
  • 使用docker命令启动:

     docker run -p 27017:27017 --name mongo \-v /data/mongo/db:/data/db \-d mongo:4.2.5
    

Docker常用命令

docker images 查看镜像文件
docker ps 查看正在运行的容器
docker ps –a 查看所有的容器
docker container exec -it f0b1c8ab3633 /bin/bash 进入到容器
exit 退出
docker version 查看版本
docker run -d -p 81:80 nginx 启动nginx容器
docker rmi imgageid 删除镜像
docker rm 容器id 删除容器

通过Docker安装的Nginx如何配置nginx.conf
Docker通过容器运行Nginx-----安装的目录 在容器中
/容器id/etc/nginx
/容器id/etc/mysql
默认情况下安装在 容器的etc目录

Docker 安装的软件如何修改配置文件的?
容器挂载外部配置文件 –v

使用挂载方式,外部的配置文件覆盖内部容器配置文件

安装jenkins:
docker run -p 8088:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

执行shell

#!/bin/bash
#服务名称
SERVER_NAME=gw_appcenter
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行
JAR_NAME=appcenter-all-0.1.0-exec
# 源jar路径
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/gw_appcenter/appcenter-all/target
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/appcenterecho "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
dokill -9 $id  echo "killed $id"
done
echo "结束进程完成"#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
echo cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"
echo cd $JAR_WORK_PATH
#修改文件权限
echo chmod 777 $JAR_NAME.jarecho BUILD_ID=dontKillMe nohup java -jar  $JAR_NAME.jar  &

容器映射8081端口
1.重启容器
systemctl restart docker
2.清空未运行的容器
docker rm $(sudo docker ps -a -q)
docker run -p 8080:8080 -p 8087:8087 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

docker常用软件安装教程相关推荐

  1. docker常用软件安装

    docker常用软件安装 一 tomcat 1.1 查找镜像 1.2 拉取镜像到本地 1.3 创建容器实例 1.4 使用 二 mysql5.7 2.1 查找镜像 2.2 拉取镜像到本地 2.3 创建容 ...

  2. Ubuntu18.04安装教程及SLAM常用软件安装教程

    文章目录 前言 Ubuntu18.04安装教程 一.准备工作 1.1.下载ubuntu镜像 1.2.制作U盘启动项 1.3.给ubuntu分配硬盘空间 二 安装ubuntu18.04系统 2.1.设置 ...

  3. Docker常用软件安装之MYSQL

      本文我们来介绍下在docker中怎么安装mysql. 1.在docker hub上查找mysql docker search mysql 2. 下载mysql镜像文件   此处我们下载5.6版本的 ...

  4. Docker常用软件安装之Redis

      本文我们来介绍下在Docker中如何安装Redis. 1.docker hub上搜索Redis docker search redis 2.下载镜像   从docker hub上下载4.0版本的R ...

  5. 计算机应用软件安装教程,计算机应用与网基础教程 常用软件安装.ppt

    计算机应用与网基础教程 常用软件安装 [内容提示] 两者的区别是,"选项1"是将压缩文件直接解压,里面包含的所有文件都分布在当前目录,导致文件散乱,不便于管理,如中图所示,所以一般 ...

  6. 在线安装计算机应用软件,计算机应用与网络基础教程 常用软件安装new.ppt

    计算机应用与网络基础教程 常用软件安装new.ppt [内容提示] 两者的区别是,"选项1"是将压缩文件直接解压,里面包含的所有文件都分布在当前目录,导致文件散乱,不便于管理,如中 ...

  7. 【原创】 ES5高效封装WIN10系统教程2020系列(五)常用软件安装及设置

    ** 本教程共有7个系列 ** 1. 母盘定制 2. 准备封装环境 3. 母盘安装及系统调整 4. 使用工具优化与清理 5. 常用软件安装及设置 6. ES5封装 7. 测试效果 常规软件安装这章就比 ...

  8. vb6 combo根据index显示_VB6.0软件安装教程及学习资源

    阿布分享君 ❤  abushare ① 简介 VB的中心思想就是要便于程序员使用,无论是新手或者专家.VB使用了可以简单建立应用程序的GUI系统,但是又可以开发相当复杂的程序.VB的程序是一种基于窗体 ...

  9. 软件安装教程-Vivado2018.3/ISE14.7/Modelsim10.5/Keil5/AD18/Cadence17.2/CAD2016

    硬件工程师软件安装教程 1.Vivado2018.3安装教程 本文的主要内容是介绍 Vivado 2018.3 版本(提取码:ebdx)的安装步骤及其 license(提取码: 6xkh) 的获取与加 ...

最新文章

  1. Android编程获取网络连接状态及调用网络配置界面
  2. 兰州大学计算机考研专硕学费,2018年兰州大学在职硕士研究生学费标准
  3. 程序员吐槽:放弃公务员进阿里,如今担心中年危机
  4. jQuery元素过滤
  5. signed distance field 算法
  6. Chika and Friendly Pairs
  7. 查看linux是否lvm分区,linux LVM分区查看dm设备
  8. 发财指南-----------------86400/天
  9. 构建执法阅读笔记06(总结)
  10. java抽象类代码_java – 抽象类和通用代码
  11. 敏捷开发般若敏捷系列之九:敏捷开发与本能反应
  12. 单片机如何关掉蜂鸣器_【开源】蜂鸣器怎样实现类似高级冰箱上很清脆“叮叮”声......
  13. 三菱plc232数据线驱动下载_失易得安卓恢复v5.3.5.0-失易得安卓恢复PC版下载
  14. wps怎么导入access_WPS Access 2013_access 2013下载-下载之家
  15. Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference (纯整数计算)
  16. android手机短信诈骗原理,安卓系统均存短信欺诈漏洞 专家:系统先天不足
  17. 北京交通大学计算机全球排名,2017美国研究生计算机专业排名 - 2017北京交通大学计算机考研成绩310分,能调剂到什么大学...
  18. 挑战程序设计竞赛——详解DFS及BFS
  19. HDU 6194 后缀数组+单调栈
  20. 【Java】关于编程环境

热门文章

  1. 小脑的语言、工作记忆、社会和情绪处理的三重表征
  2. 聚类算法之DBSCAN算法之一:经典DBSCAN
  3. java dbscan_聚类(DBSCAN)算法原理
  4. 让离线程序也需要输入校验码(激活码)才可使用(python实现)
  5. 小程序登录的AES加密解释
  6. 2022-2028年全球及中国汽车显示系统行业投资前景分析
  7. 专业的电脑网速测试网站
  8. Ubuntu系统CMake Error: Generator: execution of make failed.
  9. CSS3 transform动画 3D旋转立体正方形
  10. 学习Python中turtle模块的基本用法(6:其它函数)