Docker学习与应用

一.docker是什么

1.docker简介

docker是一个开源的软件部署解决方案;

docker是轻量级的应用容器框架;

docker可以打包、发布、运行任何的应用;

总结:一个开源的引擎,可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。

关于docker的概念性问题,我之前有一篇博客Docker的原理和基本概念_Hassan猿的博客-CSDN博客,里面对于基本概念有更详细的探讨,本篇主要讲应用。

2.docker常用场景

web应用的自动化打包和发布;

自动化测试和持续集成、发布;

在服务型环境中部署和调整数据库或其他后台应用;

从头编译或者扩展现有的openshift或cloud foundry平台来搭建自己的PaaS环境。

docker官方网站:Get Docker | Docker Documentation                        中文社区:docker中文社区,docker帮助,docker手册,docker教程,docker安装手册 - docker中文社区

 二.docker的安装

1.docker的安装步骤

参阅官网文档

2.离线安装步骤

step0:将docker安装文件(例如docker-17.12.1-ce.tgz)上传到服务器上

step1:解压:$ tar xzvf docker-17.12.1-ce.tgz

step2:将二进制文件移动到可执行文件路径上的某个目录,例如/usr/bin/。$ sudo cp docker/* /usr/bin/

step3:启动docker守护进程 $ sudo dockerd &

step4:查看docker版本 docker version 或  docker -v

3.docker-compose

如果应用涉及到docker-compose脚本部署,则需要配置docker-compose。

(1)优势及使用场景:

使用一个dockerFile模板文件,可以让用户很方便地定义一个单独的应用容器。

使用场景:在工作中经常会碰到需要多个容器相互配合来完成某项任务的情况,例如要实现一个web项目,除了web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还要包括负载均衡容器等。compose允许用户通过一个单独的docker-compose.yml模板文件(yml格式)来定义一组相关联的应用容器为一个project项目。

(2)docker-compose.yml文件示例:

version: '2.0'
services:
  xiangmu1:
    image: huaweisoft/xiangmu1::2.3.0
    container_name: xiangmu1
    volumes:
    - /var/docker_data/xiangmu1/web-static/httpd/httpd.conf:/usr/local/apache2/conf/httpd.conf
    - /var/docker_data/xiangmu1/web-static/httpd/httpd-ssl.conf:/usr/local/apache2/conf/extra/httpd-ssl.conf
    - /var/docker_data/xiangmu1/web-static/cert/server.crt:/usr/local/apache2/conf/server.crt
    - /var/docker_data/xiangmu1/web-static/cert/server.key:/usr/local/apache2/conf/server.key
    - /var/docker_data/xiangmu1/web-static/js/config.js:/opt/app/static/js/config.js
    - /var/docker_data/xiangmu1/web-static/js/videomeet/videomeet_websocket_main.js:/opt/app/static/js/videomeet/videomeet_websocket_main.js
    - /etc/localtime:/etc/localtime
    - /etc/timezone:/etc/timezone
    ports:
    - '8079:80'
    - '8443:443'
    restart: always
  xiangmu2:
    image: huaweisoft/xiangmu2:1.2.0
    container_name: xiangmu2
    volumes:
    - /var/docker_data/xiangmu2/web-static/httpd/httpd.conf:/usr/local/apache2/conf/httpd.conf
    - /var/docker_data/xiangmu2/web-static/httpd/httpd-ssl.conf:/usr/local/apache2/conf/extra/httpd-ssl.conf
    - /var/docker_data/xiangmu2/web-static/cert/server.crt:/usr/local/apache2/conf/server.crt
    - /var/docker_data/xiangmu2/web-static/cert/server.key:/usr/local/apache2/conf/server.key
    - /etc/localtime:/etc/localtime
    - /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone
    ports:
    - '9082:80'
    - '9083:443'
    restart: always

(3)docker-compose的安装

step1:下载docker-compose,地址:Releases · docker/compose · GitHub   根据自己的平台和架构下载匹配的二进制包

step2:上传docker-compose-linux-x86_64文件,并移动到可执行文件目录下 mv docker-compose-linux-x86_64 /usr/bin/docker-compose

step3:配置docker-compose 命令权限 chmod +x /usr/bin/docker-compose

step4:查看docker版本 docker-compose -v 

三.docker的应用

1.以docker部署yingyong1系统为例

step1:将应用war包上传至服务器 /opt/yingyong1

step2:解压应用包 unzip yingyong1.war

step3:执行dokcer命令

docker run

-e "TZ-Asiz/Shanghai" (设置环境变量-时区)

--name yingyong1 (为容器指定一个名称)

-p 8093:8080 (指定端口映射,格式为主机/宿主端口:容器端口)

-v /opt/yingyong1:/usr/local/tomcat/webapps/yingyong1 (绑定一个卷,映射文件目录,格式为 宿主机:容器)

-v /opt/yingyong1:/usr/local/tomcat/logs (映射日志)

-v /opt/test:/usr/local/tomcat/webapps/test -d tomcat:8 (后台运行容器,并返回容器ID)

step4:查看进程 docker ps -a 可以查看容器ID,镜像,容器名称,命令,创建时间,状态(up代表应用启动)

step5:cd /opt/logs/yingyong1/,然后vi目标文件

2.以进入容器操作为例

step1:执行docker ps 获取容器ID

step2:docker exec -it 进程号 /bin/bash(进程号可以不完整,能唯一即可,在docker ps -a可以查看)

3.应用部署更新

场景:应用已部署,部分文件需更新

step1:将要更新的文件同步到宿主机目录下(eg:/opt/yingyong1/...)

因建立了映射镜像,所以宿主机上的内容会同步到容器中,如果未建立映射,则需通过docker cp命令同步文件

step2:如需重启容器,执行docker restart yingyong1,或者分别执行docker stop yingyong1,docker start yingyong1

注:容器名或者进程号均可

4.应用重新部署

场景:应用已部署,配置需要修改

step1:查看进程信息docker ps

step2:停止容器 docker stop yingyong1

step3:删除容器 docker rm yingyong1

step4:部署容器  (见前文)

5.通过docker-compose部署

step1:导入镜像(docker load -i xxx.tar)

step2:查看镜像(docker images)

step3:切换到docker-compose.yml文件目录下,执行docker-compose -f docker-compose.yml up -d

停止服务命令:docker-compose -f docker-compose.yml down

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值