Skip to content

Commit 4729d78

Browse files
committed
add mysql README
1 parent d0faf10 commit 4729d78

File tree

3 files changed

+222
-86
lines changed

3 files changed

+222
-86
lines changed

centos/README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
# CentOS
22

3-
官方镜像地址https://hub.docker.com/_/centos/
3+
仓库官网https://hub.docker.com/_/centos/
44

55
https://github.com/docker-library/docs/tree/master/centos
66

77
获取:
88
```
99
docker pull centos
10+
docker pull daocloud.io/library/centos
11+
docker pull hub.c.163.com/library/centos
1012
```
1113

12-
## CentOS
13-
1414
CentOS 是一个基于 RedHat Linux 提供的可自由使用源代码的企业级 Linux 发行版本。每个版本的 CentOS 都会获得十年的支持(通过安全更新方式)。 新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。 这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。 CentOS 是 Community Enterprise Operating System 的缩写。
1515

1616
### 支持的tag

mysql/README.md

+135
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
# MySQL
2+
3+
仓库官网:https://hub.docker.com/_/mysql/
4+
5+
获取:
6+
```
7+
docker pull mysql
8+
docker pull daocloud.io/library/mysql
9+
docker pull hub.c.163.com/library/mysql
10+
```
11+
12+
版本:
13+
14+
- 5.7.4 (latest)
15+
- 5.7.5
16+
- 5.7.6
17+
- 8.0.2
18+
- 5.5.44
19+
- 5.6.17
20+
- 5.6.21
21+
22+
MySQL 由于其性能高、成本低、可靠性好,已经成为全球最流行的开源数据库软件,被广泛地被应用在 Internet 上的中小型网站中。随着 MySQL 的不断成熟,它也逐渐出现在更多大规模网站和应用上,比如 Facebook、Twitter 和 Yahoo! 等站点。
23+
24+
## 如何使用本镜像
25+
26+
27+
### 启动一个 mysql 服务实例
28+
29+
启动一个 MySQL 实例非常简单:
30+
```
31+
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql:tag
32+
```
33+
34+
在上述命令中,some-mysql 指定了该容器的名字,my-secret-pw 指定了 root 用户的密码,tag 参数指定了你想要的 MySQL 版本。
35+
36+
### 从另外一个 Docker 容器连接 MySQL 服务
37+
38+
本镜像会暴露 MySQL 的标准端口 3306,你可以使用 link 功能来让其他应用容器能够访问 MySQL 容器,就像下面这样:
39+
```
40+
$ docker run --name some-app --link some-mysql:mysql -d app-that-uses-mysql
41+
```
42+
43+
### 使用 MySQL 命令行工具连接 MySQL
44+
45+
下面的命令启动了另一个 MySQL 容器并使用 MySQL 命令行工具访问你之前的 MySQL 服务,之后你就能向你的数据库执行 SQL 语句了:
46+
```
47+
$ docker run -it --link some-mysql:mysql --rm daocloud.io/mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
48+
```
49+
50+
在上述命令中 some-mysql 就是你原来 MySQL 服务容器的名字。
51+
52+
想要了解更多有关 MySQL 命令行工具的信息可以参考 MySQL 官方文档:http://dev.mysql.com/doc/en/mysql.html。
53+
54+
### 查看 MySQL 日志
55+
56+
docker exec 命令能让你在一个容器中额外地运行新命令。比如你可以执行下面的命令来获得一个 bash shell:
57+
```
58+
$ docker exec -it some-mysql bash
59+
```
60+
61+
你可以通过查看 Docker 容器的日志获得 MySQL 服务的日志:
62+
```
63+
$ docker logs some-mysql
64+
```
65+
66+
### 使用自定义 MySQL 配置文件
67+
68+
当 MySQL 服务启动时会以 /etc/mysql/my.cnf 为配置文件,本文件会导入 /etc/mysql/conf.d 目录中所有以 .cnf 为后缀的文件。这些文件会拓展或覆盖 /etc/mysql/my.cnf 文件中的配置。因此你可以创建你自己需要的配置文件并挂载至 MySQL 容器中的 /etc/mysql/conf.d 目录。
69+
70+
假设 /my/custom/config-file.cnf 是你自定义的配置文件,你可以像这样启动一个 MySQL 容器(注意这里直接挂载了配置文件的目录):
71+
```
72+
$ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql:tag
73+
```
74+
75+
这会启动一个名为 some-mysql 且同时加载了 /etc/mysql/my.cnf 和 /etc/mysql/conf.d/config-file.cnf 这两个配置文件的新容器,注意这时以后者的配置优先。
76+
77+
SELinux 用户在这里可能会遇到一个问题,目前的解决方法是为你的配置文件指定相关的 SELinux 策略配置,那样容器才可以访问它:
78+
```
79+
$ chcon -Rt svirt_sandbox_file_t /my/custom
80+
```
81+
82+
## 环境变量
83+
84+
当你启动 mysql 镜像时,你可以通过 docker run 命令传递几个特定的环境变量来调整相关设置,特别注意当容器启动时,所有环境变量都不会影响一个容器中已存在的数据库内容。
85+
86+
### MYSQL_ROOT_PASSWORD
87+
88+
本变量必填,它指定了 MySQL root 的用户的密码。在刚才的例子中,该密码被设置为 my-secret-pw。
89+
90+
### MYSQL_DATABASE
91+
92+
本变量可选,通过该变量当 MySQL 启动时会创建一个由你指定的数据库。如果你另外又提供了一对用户名和密码(见下方),那么他将会被授予本数据库的所有权限。
93+
94+
### MYSQL_USER, MYSQL_PASSWORD
95+
96+
这两个变量可选,同时使用的话会创建一个新用户并设置相应的密码,该用户会被授予由 MYSQL_DATABASE 变量指定的数据库的所有权限(见上方)。只有当同时提供了这两个变量时该用户才会被创建。
97+
98+
特别注意没有必要使用这个机制来创建 root 用户,root 用户的密码会被设置为 MYSQL_ROOT_PASSWORD 变量的值。
99+
100+
### MYSQL_ALLOW_EMPTY_PASSWORD
101+
102+
本变量可选,当其被设置为 yes 时将会允许当前容器中的 root 用户能够使用空密码。注意:绝对不建议将该变量设置为 yes,除非你知道自己在做什么。如果这么做的话你的 MySQL 服务将会失去保护,所有人都可以以超级用户的身份访问该 MySQL 服务。
103+
104+
## 重要说明
105+
106+
### 储存数据的位置
107+
108+
摘要:下面介绍了多种储存 Docker 容器中数据的方式,我们鼓励 mysql 镜像用户熟悉下面各项技术:
109+
110+
- 使用 Docker 自带的 [Volume 机制](https://docs.docker.com/userguide/dockervolumes/#adding-a-data-volume)将数据库文件写入宿主机的磁盘。这是默认的方式,对用户来讲简单且透明。缺点是宿主机上的工具或应用可能难以定位这些文件。
111+
- 在宿主机上创建一个数据目录(在容器外部)并把他挂载至容器内部。此时数据库文件被放置在宿主机上一个已知的目录里,那样容器外部的应用和工具就可以方便地访问这些文件。缺点是用户需要确保这些目录存在,且宿主机上正确配置了权限设置。
112+
113+
阅读 Docker 文档能快速了解不同的储存选项,并且有很多博客或论坛讨论并给出了这方面的建议。我们会在下面简单地演示一下:
114+
115+
1) 在宿主机上创建一个数据目录,例:/my/own/datadir。
116+
2) 使用下面的命令启动 mysql 容器:
117+
```
118+
$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql:tag
119+
```
120+
121+
我们通过 -v /my/own/datadir:/var/lib/mysql 参数从宿主机挂载 /my/own/datadir 目录至容器内作为 /var/lib/mysql 目录,那样 MySQL 就会默认将数据文件写入这个目录中。
122+
123+
注意 SELinux 用户可能会遇到一个问题,目前的解决方法是为你的数据目录指定相关的 SELinux 策略配置,那样容器才可以访问它:
124+
```
125+
$ chcon -Rt svirt_sandbox_file_t /my/own/datadir
126+
```
127+
128+
### MySQL 初始化完成前无连接
129+
130+
如果容器启动时没有任何数据库被初始化,那么就会创建一个默认的数据库。这是一个预料中的行为,它意味着除非初始化完成,否则 MySQL 不会接受任何连接。当你使用 docker-compose 等自动化工具同时启动一系列容器时,可能会因为这个特性而造成一些问题。
131+
132+
### 使用已存在的数据库
133+
134+
如果从一个已存在数据库文件的目录上启动一个 mysql 容器的话(特别是一个 mysql 子目录),那么 $MYSQL_ROOT_PASSWORD 变量应该在启动命令中略去;即使设置了也会被忽略,已存在的数据库不会以任何方式被改变。
135+

nginx/README.md

+84-83
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,85 @@
1-
# Nginx
2-
3-
官方仓库:https://registry.hub.docker.com/_/nginx/
4-
5-
获取:
6-
```
7-
docker pull nginx
8-
docker pull daocloud.io/library/nginx
9-
```
10-
11-
版本:
12-
13-
- latest
14-
- alpine
15-
- 1.13.0-alpine
16-
- 1.12.2
17-
- 1.12.2-alpine
18-
- 1.7.10
19-
- 1.7.9
20-
- 1.13.2-perl
21-
22-
等等。
23-
24-
25-
## 什么是 Nginx?
26-
27-
Nginx 是一款轻量级的 Web 服务器、反向代理服务器、及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行。由俄罗斯的程序设计师 Igor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 Nginx 网站用户有:新浪、网易、腾讯等。
28-
29-
## 如何使用这个镜像?
30-
31-
### 托管静态网页内容
32-
```
33-
docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d daocloud.io/nginx
34-
```
35-
另外一种比上面绑定 volume 更推荐的做法是用Dockerfile生成包含网页内容的新镜像,如下所示:
36-
```
37-
FROM daocloud.io/nginx
38-
COPY static-html-directory /usr/share/nginx/html
39-
```
40-
把上面的Dockerfile和您的网页内容(static-html-directory)放在同一目录下,然后运行命令生成新镜像:
41-
```
42-
docker build -t some-content-nginx .
43-
```
44-
最后启动容器:
45-
```
46-
docker run --name some-nginx -d some-content-nginx
47-
```
48-
49-
### 暴露端口
50-
```
51-
docker run --name some-nginx -d -p 8080:80 some-content-nginx
52-
```
53-
54-
这样启动,您就可以通过 http://localhost:8080 或者 http://宿主 IP:8080 访问 Nginx 了。
55-
56-
### 进阶配置
57-
```
58-
docker run --name some-nginx -v /some/nginx.conf:/etc/nginx/nginx.conf:ro -d daocloud.io/nginx
59-
```
60-
61-
>了解详细的 Nginx 配置文件语法,请参考:官方文档:http://nginx.org/en/docs/。
62-
63-
为了确保 Nginx 容器能够持续运行,请务必在您自定义的 Nginx 配置文件中包含deamon off配置项。
64-
65-
下面的命令从一个正在运行的 Nginx 容器中复制出配置文件:
66-
```
67-
docker cp some-nginx:/etc/nginx/nginx.conf /some/nginx.conf
68-
```
69-
您也可以通过推荐的Dockerfile方式来生成一个包含自定义配置文件的镜像,如下所示:
70-
```
71-
FROM daocloud.io/nginx
72-
COPY nginx.conf /etc/nginx/nginx.conf
73-
```
74-
再用下面的命令构建镜像:
75-
```
76-
docker build -t some-custom-nginx .
77-
```
78-
最后启动容器:
79-
```
80-
docker run --name some-nginx -d some-custom-nginx
81-
```
82-
支持的Docker版本
83-
1+
# Nginx
2+
3+
仓库官网:https://registry.hub.docker.com/_/nginx/
4+
5+
获取:
6+
```
7+
docker pull nginx
8+
docker pull daocloud.io/library/nginx
9+
docker pull hub.c.163.com/library/nginx
10+
```
11+
12+
版本:
13+
14+
- latest
15+
- alpine
16+
- 1.13.0-alpine
17+
- 1.12.2
18+
- 1.12.2-alpine
19+
- 1.7.10
20+
- 1.7.9
21+
- 1.13.2-perl
22+
23+
等等。
24+
25+
26+
## 什么是 Nginx?
27+
28+
Nginx 是一款轻量级的 Web 服务器、反向代理服务器、及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行。由俄罗斯的程序设计师 Igor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 Nginx 网站用户有:新浪、网易、腾讯等。
29+
30+
## 如何使用这个镜像?
31+
32+
### 托管静态网页内容
33+
```
34+
docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d daocloud.io/nginx
35+
```
36+
另外一种比上面绑定 volume 更推荐的做法是用Dockerfile生成包含网页内容的新镜像,如下所示:
37+
```
38+
FROM daocloud.io/nginx
39+
COPY static-html-directory /usr/share/nginx/html
40+
```
41+
把上面的Dockerfile和您的网页内容(static-html-directory)放在同一目录下,然后运行命令生成新镜像:
42+
```
43+
docker build -t some-content-nginx .
44+
```
45+
最后启动容器:
46+
```
47+
docker run --name some-nginx -d some-content-nginx
48+
```
49+
50+
### 暴露端口
51+
```
52+
docker run --name some-nginx -d -p 8080:80 some-content-nginx
53+
```
54+
55+
这样启动,您就可以通过 http://localhost:8080 或者 http://宿主 IP:8080 访问 Nginx 了。
56+
57+
### 进阶配置
58+
```
59+
docker run --name some-nginx -v /some/nginx.conf:/etc/nginx/nginx.conf:ro -d daocloud.io/nginx
60+
```
61+
62+
>了解详细的 Nginx 配置文件语法,请参考:官方文档:http://nginx.org/en/docs/。
63+
64+
为了确保 Nginx 容器能够持续运行,请务必在您自定义的 Nginx 配置文件中包含deamon off配置项。
65+
66+
下面的命令从一个正在运行的 Nginx 容器中复制出配置文件:
67+
```
68+
docker cp some-nginx:/etc/nginx/nginx.conf /some/nginx.conf
69+
```
70+
您也可以通过推荐的Dockerfile方式来生成一个包含自定义配置文件的镜像,如下所示:
71+
```
72+
FROM daocloud.io/nginx
73+
COPY nginx.conf /etc/nginx/nginx.conf
74+
```
75+
再用下面的命令构建镜像:
76+
```
77+
docker build -t some-custom-nginx .
78+
```
79+
最后启动容器:
80+
```
81+
docker run --name some-nginx -d some-custom-nginx
82+
```
83+
支持的Docker版本
84+
8485
这个镜像在 Docker 1.7.0 上提供最佳的官方支持,对于其他老版本的 Docker(1.0 之后)也能提供基本的兼容。

0 commit comments

Comments
 (0)