docker 及 docker-compose 的快速安装和简单使用
本篇将使用 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 -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- daocloud
curl -sSL https://get.daocloud.io/docker | sh
安装后将会自动重启
卸载
sudo apt-get remove docker docker-engine
rm -fr /var/lib/docker/
配置加速器
下面是我的配置,实际使用需要根据自己的账号去查看自己的地址
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 - 进入一个运行中的容器:
docker exec -it 容器Id /bin/bash
通过 Dockerfile 使用 nginx
通过下面的一个脚本可以简单快速的创建一个镜像并运行起来
大概看下应该就可以大概明白镜像的基本使用了
echo '0.创建测试目录及代码'
mkdir dockerfiletest
cd dockerfiletest
mkdir dist
echo 'hello world'>./dist/index.html
echo '1.创建Dockerfile'
echo '
From daocloud.io/library/nginx:1.13.0-alpine
COPY dist/ /usr/share/nginx/html/
'>./Dockerfile
echo '2.构建镜像'
docker build -t dockerfiletest .
echo '3.运行镜像'
docker run -p 3344:80 dockerfiletest
下面分步拆解下
1.在项目目录中添加 Dockerfile 文件
详细请参考:https://hub.daocloud.io/repos/2b7310fb-1a50-48f2-9586-44622a2d1771
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.构建镜像
构建参数说明参考:http://www.runoob.com/docker/docker-build-command.html
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 中的版本,自定义您需要的版本。
- Github源
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
- Daocloud镜像
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:latest
ports:
- "4466:80"
web2:
image: registry.cn-hangzhou.aliyuncs.com/yimo_public/docker-nginx-test:latest
ports:
- "4477:80"
此处只是简单演示写法,说明 docker-compose 的方便
2.构建完成,后台运行镜像
docker-compose up -d
运行后就可以使用 ip+port 访问这两个站点了
3.镜像更新重新部署
docker-compose down
docker-compose pull
docker-compose up -d
相关文章
- docker 文档:https://docs.docker.com/get-started/
- docker-compose 文档:https://docs.docker.com/compose/install/#uninstallation
- docker-compose 仓库:https://github.com/docker/compose
- daocloud 源地址 :https://get.daocloud.io/#install-docker
- Docker 通过 Nginx 镜像部署 Vue 项目:https://blog.csdn.net/jason_jeson/article/details/78200623
- DaoClould https://hub.daocloud.io/repos/2b7310fb-1a50-48f2-9586-44622a2d1771
docker 及 docker-compose 的快速安装和简单使用的更多相关文章
- percona-xtrabackup快速安装及其简单使用
percona-xtrabackup快速安装及其简单使用 cd /opt/环境:centos6.x yum -y install perl-DBIyum -y install perl-DBD-MyS ...
- CentOS7 下Docker最新入门教程 超级详细 (安装以及简单的使用)
转载https://blog.csdn.net/wzsy_ll/article/details/82866627 1.为什么使用Docker(本人) 最近总是频繁的在新服务器发布项目, 每次发布都需要 ...
- Alibaba Java诊断工具Arthas之快速安装和简单使用
Alibaba Java诊断工具Arthas简单介绍 : 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception ...
- Docker Compose + Traefik v2 快速安装, 自动申请SSL证书 http转https 初次尝试
前言 昨晚闲得无聊睡不着觉,拿起服务器尝试部署了一下Docker + Traefik v2.1.6 ,以下是一些配置的总结,初次接触,大佬勿喷. 我的系统环境是 Ubuntu 18.04.3 LTS ...
- 快速安装Docker
Docker需要操作系统的内核3.0以上,如低于3.0,需先升级内核,才能安装docker: 1.查看内核版本号 [root@daojia ~]# uname -r 3.10.0-693.el7.x8 ...
- Docker 快速安装&搭建 Ngnix 环境,并配置反向代理
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- Ubuntu18.04安装docker、docker-compose、
Ubuntu18.04下Docker CE安装 Docker版本分为两个:Docker Community Edition (CE)和 Docker Enterprise Edition (EE).D ...
- Centos7 快速安装Docker
写在前面 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以轻松批量地在生产环境中部署. 网上的安装教程也很多这里我推 ...
- Docker 快速安装&搭建 Mysql 环境
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
随机推荐
- LoadRunner监控数据库服务
一.LR监控SQL Server SQL Server自身提供的性能计数器指标有: 指标名称 指标描述 指标范围 指标单位 1.SQL Server中访问方法(Access Methods)对象包含的 ...
- 【JAVA】文件各行打乱
给定一个文件,把文件 里的各行打乱,并验证其正确性,时间紧迫,随手写写 String path = "/Users/guangyi.zgy/Desktop/scene_2khas_8kno_ ...
- maven中运行java程序
从命令行运行1.运行前先编译代码,exec:java不会自动编译代码,你需要手动执行mvn compile来完成编译.mvn compile2.编译完成后,执行exec运行main方法. 不需要传递参 ...
- Oracle数据库体系结构之进程结构(4)
Oracle进程结构包括用户进程,服务进程,后台进程. 1. 用户进程 用户进程在数据库用户要求连接到Oracle服务器时开始启动. 用户进程是要求Oracle服务器交互的一种进程 它必须首先建立一个 ...
- Cocos坐标之convertToNodeSpace、convertToWorldSpace、convertToNodeSpaceAR、convertToWorldSpaceAR区别和用法
convertToNodeSpace.convertToWorldSpace.convertToNodeSpaceAR.convertToWorldSpaceAR,在他们的下一层看到下面的注释: /* ...
- tensorflow分类-【老鱼学tensorflow】
前面我们学习过回归问题,比如对于房价的预测,因为其预测值是个连续的值,因此属于回归问题. 但还有一类问题属于分类的问题,比如我们根据一张图片来辨别它是一只猫还是一只狗.某篇文章的内容是属于体育新闻还是 ...
- 多项式 之 快速傅里叶变换(FFT)/数论变换(NTT)/常用套路【入门】
原文链接https://www.cnblogs.com/zhouzhendong/p/Fast-Fourier-Transform.html 多项式 之 快速傅里叶变换(FFT)/数论变换(NTT)/ ...
- tarjin求割点
题目: hdu3671 http://acm.hdu.edu.cn/showproblem.php?pid=3671 题意:给一个无向图,要求毁掉两个点,使图变得不连通,图一开始是连通的 因为要毁掉两 ...
- SQL数据库的操作,表的操作
数据库定义语言(DDL):用于对数据库及数据库中的各种对象进行创建,删除,修改等操作 (1)create:用于创建数据库或数据库对象 (2)alter:用于对数据库或数据库对象进行修改 (3)drop ...
- [开源]使用C# 对CPU卡基本操作封装
Github 地址:https://github.com/zifeiniu/CPUCardLib 项目需求及简介: 公司要求将用户相关的信息储存到射频卡中,之前项目使用的Mifare类型卡,只储存了用 ...