转~Docker极简教程「高级」

作者:像风一样;

来源:后端技术精选

1.Registry介绍

Registry 是镜像仓库,我们可以从镜像仓库中拉取一些镜像到本地,也可以提交镜像到仓库。

一些术语:

与registry仓库的交互:

查找镜像

docker search whalesay

拖取镜像

docker pull whalesay

推送镜像

docker push myname/whalesay

国内的docker镜像仓库:

daoclou

时速云

aliyun

2.Registry实战

1.查找镜像

STARS可以理解为点赞数,默认是按照这个排序的。

2.拉取镜像

3.查看镜像

可以看到,REPOSITORY是镜像名,TAG是默认的latest,正常情况是版本号,这两个比较重要。

CREATED是创建时间,SIZE是占用空间的大小。

4.运行镜像

5.标记镜像

使用docker tag命令标记本地镜像,将其归入某一仓库。

docker tag docker/whalesay myhaleasy:tag

6.上传镜像

可以使用docker push命令上传本地镜像到仓库,但是需要注册登录。

注册登录地址:https://hub.docker.com

执行登录命令,输入用户名与密码即可。

docker login

上传镜像前还需要在Docker官网个人中心创建该镜像。

3.Compose多容器应用

Compose 是一个用户定义和运行多个容器的 Docker 应用程序。在 Compose 中你可以使用 YAML 文件来配置你的应用服务。然后,只需要一个简单的命令,就可以创建并启动你配置的所有服务。

docker-compose 安装

1.Mac/Windows:

安装docker的时候附带安装了。

2.Linux:

curl https://github.com/docker/compose

Linux安装

执行命令

curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose

该命令会下载文件到(>)/usr/local/bin/docker-compose,在下载地址中使用$(uname -s)是获取 unmae -s 命令的输出加到路径中。

下载完成后,可以设置该目录的权限为777,意为所有人都可以读写该目录,最后使用 docker-compose --version 检查是否安装成功。

4.Compose搭建博客网站

接下来我们使用docker-compose搭建一个含nginx+ghost+db的博客网站。

1.准备

首先创建如下目录结构:

ghost

- ghost

- Dockfile

- config.js

- nginx

- nginx.conf

- Dockfile

- data

- docker-compose.yml

每个文件的具体内容有:

ghost/ghost/Dockfile

过时的配置(不使用)

FROM ghost

COPY ./config.js /var/lib/ghost/config.js

EXPOSE 2368

CMD ["npm","start","--production"]

最新版的官方镜像, 把配置文件改到/var/lib/ghost/content/ ,然后注释掉了 CMD["npm","start","--production"] 即可。

FROM ghost

COPY ./config.js /var/lib/ghost/content/

EXPOSE 2368

ghost/ghost/config.js

var path = require('path'),

config;

config = {

production: {

url: 'http://mytestblog.com',

mail: {},

database: {

client: 'mysql',

connection: {

host: 'db',

user: 'ghost',

password: 'ghost',

database: 'ghost',

port: '3306',

charset: 'utf8'

},

debug: false

},

paths: {

contentPath: path.join(process.env.GHOST_CONTENT, '/')

},

server: {

host: '0.0.0.0',

port: '2368'

}

}

};

module.exports = config;

ghost/nginx/Dockerfile

FROM nginx

COPY nginx.conf /etc/nginx/nginx.conf

EXPOSE 80

ghost/nginx/nginx.conf

worker_processes 4;

events {worker_connections 1024;}

http {

server {

listen 80;

location / {

proxy_pass http://ghost-app:2368;

}

}

}

ghost/docker-compose.yml

version: '2'

networks:

ghost:

services:

ghost-app:

build: ghost

networks:

- ghost

depends_on:

- db

ports:

- "2368:2368"

nginx:

build: nginx

networks:

- ghost

depends_on:

- ghost-app

ports:

- "80:80"

db:

image: "mysql:5.7.15"

networks:

- ghost

environment:

MYSQL_ROOT_PASSWORD: mysqlroot

MYSQL_USER: ghost

MYSQL_PASSWORD: ghost

volumes:

- $PWD/data:/var/lib/mysql

ports:

- "3306:3306"

此处数据库相关的配置要和config.js中的配置(user、password)保持一致。

一旦我们为一个服务指定了一个名字(db),它就可以被其它服务所解析。

nginx 中proxy_pass 设置成 http://ghost-app:2368 也是因为在docker-compose.yml 指定了服务是ghost-app。

2.启动

将所有容器启动,并以daemon的方式后台运行。第一次不需要build,因为会自动创建镜像。

docke-compose up -d

3.查看应用

docker-compose ps

因为文件内容输入有误,导致启动未成功,修改文件后还需要停止、删除掉容器再重新构建才行。

4.停止(+)

停止所有容器

docker-compose stop

5.删除(+)

删除时需要输入y手动确认

docker-compose rm

6.构建(+)

非首次运行就需要手动创建镜像了

docker-compose build

最后,在ghost目录下再次启动!

7.测试

访问域名进入搭建的博客网站,可以注册账号发布博客。

关于ghost的使用这里不做过多介绍。

5.docker-compose.yml常用命令

6.Docker资源链接

Docker官方英文资源

docker官网:http://www.docker.com

Docker中文资源

Docker中文网站:https://www.docker-cn.com/Docker安装手册:https://docs.docker-cn.com/engine/installation/

Docker 国内镜像

网易加速器:http://hub-mirror.c.163.com官方中国加速器:https://registry.docker-cn.comustc的镜像:https://docker.mirrors.ustc.edu.cndaocloud:https://www.daocloud.io/mirror#accelerator-doc(注册后使用)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,492评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,048评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,927评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,293评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,309评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,024评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,638评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,546评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,073评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,188评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,321评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,998评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,678评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,186评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,303评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,663评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,330评论 2 358

推荐阅读更多精彩内容