本篇将使用 DaoCloud 源在 Ubuntu 上简单快速安装 docker 及 docker-compose
并添加了通过 Dockerfile 及 docker-compose.yml 使用 nginx 的示例
本篇文章所用系统信息如下

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:        16.04
Codename:       xenial
复制代码

docker 的安装及使用

简单介绍

docker 是一个开源的软件部署解决方案
docker 也是轻量级的应用容器框架
docker 可以打包、发布、运行任何的应用

安装

 curl -sSL https://get.daocloud.io/docker | sh
复制代码

安装后将会自动重启

卸载

sudo apt-get remove docker docker-engine
rm -fr /var/lib/docker/
复制代码

配置加速器

下面是我的配置,实际使用需要根据自己的账号去查看自己的地址

  • DaoCloud
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://ced808ab.m.daocloud.io
sudo systemctl restart docker.service
复制代码
  • 阿里云
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://dist7hw1.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
复制代码

基础命令

  • 查看版本:docker -v //文章使用版本:Docker version 18.06.0-ce, build 0ffa825
  • 查看镜像:docker images
  • 查看容器:docker ps
  • 启动 docker 服务:sudo service docker start
  • 停止 docker 服务:sudo service docker stop
  • 重启 docker 服务:sudo service docker restart

通过 Dockerfile 使用 nginx

通过下面的一个脚本可以简单快速的创建一个镜像并运行起来 大概看下应该就可以大概明白镜像的基本使用了


echo '0.创建测试目录及代码'
mkdir dockerfiletest
cd dockerfiletest
mkdir dist
echo 'hello world'>./dist/index.htmlecho '1.创建Dockerfile'
echo '
From daocloud.io/library/nginx:1.13.0-alpine
COPY dist/ /usr/share/nginx/html/
'>./Dockerfileecho '2.构建镜像'
docker build -t dockerfiletest .echo '3.运行镜像'
docker run -p 3344:80 dockerfiletest复制代码

下面分步拆解下

1.在项目目录中添加 Dockerfile 文件

详细请参考:hub.daocloud.io/repos/2b731…

html 的简单部署

From daocloud.io/library/nginx:1.13.0-alpine
# 将发布目录的文件拷贝到镜像中
COPY dist/ /usr/share/nginx/html/
复制代码

若要使用自己的配置脚本,比如 vue 的配置,可以将自己的配置文件复制到容器中

From daocloud.io/library/nginx:1.13.0-alpine
# 删除镜像中 nginx 的默认配置
RUN rm /etc/nginx/conf.d/default.conf
# 复制 default.conf 到镜像中
ADD default.conf /etc/nginx/conf.d/
# 将发布目录的文件拷贝到镜像中
COPY dist/ /usr/share/nginx/html/
复制代码

nginx 中 vue history 模式的配置 如下,可参考

server {listen       80;location / {root /usr/share/nginx/html/;index index.html;try_files $uri $uri/ /index.html;}
}
复制代码

若是将/usr/share/nginx/html//etc/nginx/conf.d/挂载到本地,这样应该能够灵活使用 docker 安装的 nginx 了(未实践过)

2.构建镜像

构建参数说明参考:www.runoob.com/docker/dock…

docker build -t docker-nginx-test .
复制代码

3.运行镜像

--name 服务名 -d 后台运行 -p 暴露端口:nginx 端口 docker-nginx-test 镜像名/IMAGE ID

docker run --name dockertest -d -p 4455:80 docker-nginx-test
复制代码

4.测试访问

root@ubuntu:~# curl http://localhost:4455
hello world
复制代码

现在,可以通过 IP+端口的形式在外网访问站点了,但在实际使用肯定还需要绑定域名等一些操作
最简单的是我认为是使用 nginx 去做代理
目前我们公司使用的 traefik ,最爽的莫过于 https 的支持,可以了解一下

docker-compose 的安装及使用

简单介绍

Docker Compose 是一个用来定义和运行复杂应用的 Docker 工具。 使用 Docker Compose 不再需要使用 shell 脚本来启动容器。(通过 docker-compose.yml 配置)

安装

可以通过修改 URL 中的版本,自定义您需要的版本。

curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
复制代码

卸载

sudo rm /usr/local/bin/docker-compose
复制代码

基础命令

需要在 docker-compose.yml 所在文件夹中执行命令

使用 docker-compose 部署项目的简单步骤

  • 停止现有 docker-compose 中的容器:docker-compose down
  • 重新拉取镜像:docker-compose pull
  • 后台启动 docker-compose 中的容器:docker-compose up -d

通过 docker-compose.yml 部署应用

我将上面所创建的镜像推送到了阿里云,在此使用它

1.新建 docker-compose.yml 文件

通过以下配置,在运行后可以创建两个站点(只为演示)

version: "3"
services:web1:image: registry.cn-hangzhou.aliyuncs.com/yimo_public/docker-nginx-test:latestports:- "4466:80"web2:image: registry.cn-hangzhou.aliyuncs.com/yimo_public/docker-nginx-test:latestports:- "4477:80"
复制代码

此处只是简单演示写法,说明 docker-compose 的方便

2.构建完成,后台运行镜像

docker-compose up -d
复制代码

运行后就可以使用 ip+port 访问这两个站点了

3.镜像更新重新部署

docker-compose down
docker-compose pull
docker-compose up -d
复制代码

相关文章

  • docker 文档:docs.docker.com/get-started…
  • docker-compose 文档:docs.docker.com/compose/ins…
  • docker-compose 仓库:github.com/docker/comp…
  • daocloud 源地址 :get.daocloud.io/#install-do…
  • Docker 通过 Nginx 镜像部署 Vue 项目:blog.csdn.net/jason_jeson…
  • DaoClould hub.daocloud.io/repos/2b731…

docker 及 docker-compose 的快速安装和简单使用相关推荐

  1. TAIGA项目管理平台快速安装

    转载来源:https://qiita.com/maemori/items/4bd1b985774d17888e29 , https://github.com/maemori/accon/tree/ma ...

  2. docker镜像指定安装源_Docker快速安装以及换镜像源

    不得不说 docker的火爆程度已经达到的地步, 由于国外docker搭建太慢,国外的安装文档也很全面,这里就不在详述,详情可以点击这里: 正主:Docker 官方镜像加速:http://www.do ...

  3. Docker容器之compose容器集群的快速编排

    Docker容器之compose容器集群的快速编排 前言 一.Docker-compose简介 二.YAML文件格式及编写注意事项 (1)YAML文件格式 (2)YAML格式的注意事项 (3)YAML ...

  4. Docker与Docker Compose的安装以及Portainer容器管理工具

    Docker官网 概述 Docker 是一个用于开发.发布和运行应用程序的开放平台.Docker 能够将应用程序与基础架构分离,以便可以快速交付软件.使用 Docker,可以像管理应用程序一样管理基础 ...

  5. 快速安装Docker详细图文步骤教程

    文章目录 一.Docker的基本组成 1.Docker是什么? 2.我可以使用Docker做什么? 二.Docker在线安装 1.使用uname命令验证-查看即可 2.如果已经安装过Docker,先卸 ...

  6. 阿里云服务器Docker及Docker Compose的安装

    2019独角兽企业重金招聘Python工程师标准>>> 本文对阿里云ECS服务器如何安装Docker和Docker Compose进行说明,以centOS系统为例. 一.开通外网的E ...

  7. Docker快速安装与快速入门

    一.软件版本 操作系统:Centos 7.0 二.开始安装: http://www.daocloud.io/ 由于国内的源比较卡,所以我们推荐使用daocloud的方式,注册安装即可: [root@l ...

  8. Docker快速安装RabbitMQ服务

    Docker快速安装RabbitMQ服务 快速开始 #!/bin/bash # 建议保存为start.sh脚本执行 docker run -d --hostname my-rabbit --name ...

  9. Docker快速安装Sybase数据库DBeaver数据库图形化管理开发工具

    Docker快速安装Sybase数据库 Sybase 15.7 Based on ifnazar/sybase_15_7 Needs about 30 seconds after start for ...

最新文章

  1. php简单文章,php编写简单的文章发布程序
  2. ssh整合webservice cxf采用注解的方式+andriod客户端
  3. boost::container模块实现范围分配器用法
  4. C++连接MySQL(Windows)
  5. mongodb和mysql的对比_Mongodb与mysql语法比较
  6. 推荐常用的小程序Ui框架
  7. war包怎么解压_微信猫和老鼠主题怎么搞?快来看
  8. 计算机应用技术教程的答案,大学计算机应用技术教程答案
  9. VS2013使用NuGet下载资源时提示“Newtonsoft.Json”已拥有为“Microsoft.CSharp”定义的依赖项的错误
  10. ajax+同步+返回数据库,如何使AJAX同步
  11. 尘梦留痕:苏东坡的诗词里,藏着六种人生智慧
  12. 服务器硬盘热插拔后告警,IBM硬盘所谓支持热插拔带来的问题
  13. 魔百和CM311-1a_YST代工_安卓9_S905L3A_没无线版线刷包(可救砖)
  14. 计算机放音乐声音小在吗调,用电脑在网上看电影时配乐音量太大,请问怎么只把配乐音量调小,而说话声不调小。...
  15. The Hidden Agenda User Simulation Model翻译
  16. seo文章伪原创技巧(你不知道的伪原创文章处理技巧)
  17. 小米手机扩容教程_小米note手机扩容,16G升级64G
  18. matlab解高阶非齐次方程并作图,高阶非齐次线性微分方程
  19. Android源码国内源下载
  20. AndroidStudio百度地图开发之显示地图

热门文章

  1. C++11 并发指南六(atomic 类型详解三 std::atomic (续))
  2. LeetCode 665 非递减数列
  3. Detours的作用和实例(hook、钩子)
  4. python中 yield 的用法详解——最简单,最清晰的解释(排序节省内存消耗)
  5. IDS与IPS的区别(HIDS、NIDS)
  6. 题解 UVA10587 【Mayor's posters】
  7. 设计模式之笔记--简单工厂模式(Simple Factory)
  8. 一种用javascript实现的比较兼容的回到顶部demo + 阻止事件冒泡
  9. 20 个强大的 Sublime Text 插件
  10. Xdebug 使用说明