docker 及 docker-compose 的快速安装和简单使用

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

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:        16.04
Codename:       xenial

docker 的安装及使用

简单介绍

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

安装

  • 阿里云
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  • daocloud
curl -sSL https://get.daocloud.io/docker | sh

安装后将会自动重启nginx

卸载

sudo apt-get remove docker docker-engine
rm -fr /var/lib/docker/

配置加速器

下面是个人配置,实际使用须要根据本身的帐号去查看本身的地址git

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

经过下面的一个脚本能够简单快速的建立一个镜像并运行起来 大概看下应该就能够大概明白镜像的基本使用了github

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

下面分步拆解下web

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

详细请参考:https://hub.daocloud.io/repos/2b7310fb-1a50-48f2-9586-44622a2d1771docker

html 的简单部署shell

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

若要使用本身的配置脚本,好比 vue 的配置,能够将本身的配置文件复制到容器中json

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 模式的配置 以下,可参考ubuntu

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

相关文章

相关文章
相关标签/搜索