mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-12-24 22:18:54 +00:00
Add new chapters to introduce the popular repositories
This commit is contained in:
parent
1faf0eeba6
commit
6fa5159bb9
@ -1,7 +1,7 @@
|
||||
Docker —— 从入门到实践
|
||||
===============
|
||||
|
||||
v0.2.6
|
||||
v0.2.7
|
||||
|
||||
[Docker](docker.com)是个伟大的项目,它彻底释放了虚拟化的威力,让应用的分发、部署和管理都变得前所未有的高效和轻松!
|
||||
|
||||
@ -23,6 +23,7 @@ v0.2.6
|
||||
完成仓库章节;
|
||||
重写安全章节;
|
||||
修正底层实现章节的架构、名字空间、控制组、文件系统、容器格式等内容。
|
||||
添加对常见仓库和镜像的介绍。
|
||||
* 0.2: 2014-09-18
|
||||
对照官方文档重写介绍、基本概念、安装、镜像、容器、仓库、数据管理、网络等章节;
|
||||
添加底层实现章节;
|
||||
|
11
SUMMARY.md
11
SUMMARY.md
@ -67,5 +67,14 @@
|
||||
* [容器格式](underly/container_format.md)
|
||||
* [网络](underly/network.md)
|
||||
* [附录一:命令查询](appendix_command/README.md)
|
||||
* [附录二:资源链接](appendix_resources/README.md)
|
||||
* [附录二:常见仓库介绍](appendix_repo/README.md)
|
||||
* [Ubuntu](appendix_repo/ubuntu.md)
|
||||
* [CentOS](appendix_repo/centos.md)
|
||||
* [MySQL](appendix_repo/mysql.md)
|
||||
* [MongoDB](appendix_repo/mongodb.md)
|
||||
* [Redis](appendix_repo/redis.md)
|
||||
* [Nginx](appendix_repo/nginx.md)
|
||||
* [WordPress](appendix_repo/wordpress.md)
|
||||
* [Node.js](appendix_repo/nodejs.md)
|
||||
* [附录三:资源链接](appendix_resources/README.md)
|
||||
|
||||
|
2
appendix_repo/README.md
Normal file
2
appendix_repo/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
# 常见仓库介绍
|
||||
本章将介绍常见的一些仓库和镜像的功能,使用方法和生成它们的Dockerfile等。包括Ubuntu、CentOS、MySQL、MongoDB、Redis、Nginx、Wordpress、Node.js等。
|
17
appendix_repo/centos.md
Normal file
17
appendix_repo/centos.md
Normal file
@ -0,0 +1,17 @@
|
||||
## [CentOS](https://registry.hub.docker.com/_/centos/)
|
||||
|
||||
### 基本信息
|
||||
[CentOS](https://en.wikipedia.org/wiki/CentOS)是流行的Linux发行版,其软件包大多跟RedHat系列保持一致。
|
||||
该仓库提供了CentOS从5到7各个版本的镜像。
|
||||
|
||||
### 使用方法
|
||||
默认会启动一个最小化的CentOS环境。
|
||||
```
|
||||
$ sudo docker run --name some-centos -i -t centos bash
|
||||
bash-4.2#
|
||||
```
|
||||
|
||||
### Dockerfile
|
||||
* [CentOS5版本](https://github.com/CentOS/sig-cloud-instance-images/blob/2e5a9c4e8b7191b393822e4b9e98820db5638a77/docker/Dockerfile)
|
||||
* [CentOS6版本](https://github.com/CentOS/sig-cloud-instance-images/blob/8717e33ea5432ecb33d7ecefe8452a973715d037/docker/Dockerfile)
|
||||
* [CentOS7版本](https://github.com/CentOS/sig-cloud-instance-images/blob/af7a1b9f8f30744360a10fe44c53a1591bef26f9/docker/Dockerfile)
|
26
appendix_repo/mongodb.md
Normal file
26
appendix_repo/mongodb.md
Normal file
@ -0,0 +1,26 @@
|
||||
## [MongoDB](https://registry.hub.docker.com/_/mongo/)
|
||||
|
||||
### 基本信息
|
||||
[MongoDB](https://en.wikipedia.org/wiki/MongoDB)是开源的NoSQL数据库实现。
|
||||
该仓库提供了MongoDB从2.2到2.7各个版本的镜像。
|
||||
|
||||
### 使用方法
|
||||
默认会在`27017`端口启动数据库。
|
||||
```
|
||||
$ sudo docker run --name some-mongo -d mongo
|
||||
```
|
||||
|
||||
使用其他应用连接到容器,可以用
|
||||
```
|
||||
$ sudo docker run --name some-app --link some-mongo:mongo -d application-that-uses-mongo
|
||||
```
|
||||
或者通过`mongo`
|
||||
```
|
||||
$ sudo docker run -it --link some-mongo:mongo --rm mongo sh -c 'exec mongo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"'
|
||||
```
|
||||
|
||||
### Dockerfile
|
||||
* [2.2版本](https://github.com/docker-library/mongo/blob/77c841472ccb6cc87fea1218269d097405edc6cb/2.2/Dockerfile)
|
||||
* [2.4版本](https://github.com/docker-library/mongo/blob/807078cb7b5f0289f6dabf9f6875d5318122bc30/2.4/Dockerfile)
|
||||
* [2.6版本](https://github.com/docker-library/mongo/blob/77c841472ccb6cc87fea1218269d097405edc6cb/2.6/Dockerfile)
|
||||
* [2.7版本](https://github.com/docker-library/mongo/blob/807078cb7b5f0289f6dabf9f6875d5318122bc30/2.7/Dockerfile)
|
23
appendix_repo/mysql.md
Normal file
23
appendix_repo/mysql.md
Normal file
@ -0,0 +1,23 @@
|
||||
## [MySQL](https://registry.hub.docker.com/_/mysql/)
|
||||
|
||||
### 基本信息
|
||||
[MySQL](https://en.wikipedia.org/wiki/MySQL)是开源的关系数据库实现。
|
||||
该仓库提供了MySQL各个版本的镜像,包括5.6系列、5.7系列等。
|
||||
|
||||
### 使用方法
|
||||
默认会在`3306`端口启动数据库。
|
||||
```
|
||||
$ sudo docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql
|
||||
```
|
||||
之后就可以使用其它应用来连接到该容器。
|
||||
```
|
||||
$ sudo docker run --name some-app --link some-mysql:mysql -d application-that-uses-mysql
|
||||
```
|
||||
或者通过`mysql`。
|
||||
```
|
||||
$ sudo docker run -it --link some-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
|
||||
```
|
||||
|
||||
### Dockerfile
|
||||
* [5.6版本](https://github.com/docker-library/mysql/blob/7461a52b43f06839a4d8723ae8841f4cb616b3d0/5.6/Dockerfile)
|
||||
* [5.7版本](https://github.com/docker-library/mysql/blob/7461a52b43f06839a4d8723ae8841f4cb616b3d0/5.7/Dockerfile)
|
34
appendix_repo/nginx.md
Normal file
34
appendix_repo/nginx.md
Normal file
@ -0,0 +1,34 @@
|
||||
## [Nginx](https://registry.hub.docker.com/_/nginx/)
|
||||
|
||||
### 基本信息
|
||||
[Nginx](https://en.wikipedia.org/wiki/Nginx)是开源的高效的Web服务器实现,支持HTTP、HTTPS、SMTP、POP3、IMAP等协议。
|
||||
该仓库提供了Nginx从1.0到1.7各个版本的镜像。
|
||||
|
||||
### 使用方法
|
||||
下面的命令将作为一个静态页面服务器启动。
|
||||
```
|
||||
$ sudo docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx
|
||||
```
|
||||
用户也可以不使用这种映射方式,通过利用Dockerfile来直接将静态页面内容放到镜像中,内容为
|
||||
```
|
||||
FROM nginx
|
||||
COPY static-html-directory /usr/share/nginx/html
|
||||
```
|
||||
之后生成新的镜像,并启动一个容器。
|
||||
```
|
||||
$ sudo docker build -t some-content-nginx .
|
||||
$ sudo docker run --name some-nginx -d some-content-nginx
|
||||
```
|
||||
开放端口,并映射到本地的`8080`端口。
|
||||
```
|
||||
sudo docker run --name some-nginx -d -p 8080:80 some-content-nginx
|
||||
```
|
||||
|
||||
Nginx的默认配置文件路径为`/etc/nginx/nginx.conf`,可以通过映射它来使用本地的配置文件,例如
|
||||
```
|
||||
docker run --name some-nginx -v /some/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
|
||||
```
|
||||
使用配置文件时,为了在容器中正常运行,需要保持`daemon off;`。
|
||||
|
||||
### Dockerfile
|
||||
* [1到1.7版本](https://github.com/nginxinc/docker-nginx/blob/3713a0157083eb4776e71f5a5aef4b2a5bc03ab1/Dockerfile)
|
28
appendix_repo/nodejs.md
Normal file
28
appendix_repo/nodejs.md
Normal file
@ -0,0 +1,28 @@
|
||||
## [Node.js](https://registry.hub.docker.com/_/node/)
|
||||
|
||||
### 基本信息
|
||||
[Node.js](https://en.wikipedia.org/wiki/Node.js)是基于JavaScript的可扩展服务端和网络软件开发平台。
|
||||
该仓库提供了Node.js从0.8到0.11各个版本的镜像。
|
||||
|
||||
### 使用方法
|
||||
在项目中创建一个Dockerfile。
|
||||
```
|
||||
FROM node:0.10-onbuild
|
||||
# replace this with your application's default port
|
||||
EXPOSE 8888
|
||||
```
|
||||
然后创建镜像,并启动容器
|
||||
```
|
||||
$ sudo docker build -t my-nodejs-app
|
||||
$ sudo docker run -it --rm --name my-running-app my-nodejs-app
|
||||
```
|
||||
|
||||
也可以直接运行一个简单容器。
|
||||
```
|
||||
$ sudo docker run -it --rm --name my-running-script -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp node:0.10 node your-daemon-or-script.js
|
||||
```
|
||||
|
||||
### Dockerfile
|
||||
* [0.8版本](https://github.com/docker-library/node/blob/d017d679e92e84a810c580cdb29fcdbba23c2bb9/0.8/Dockerfile)
|
||||
* [0.10版本](https://github.com/docker-library/node/blob/913a225f2fda34d6a811fac1466e4f09f075fcf6/0.10/Dockerfile)
|
||||
* [0.11版本](https://github.com/docker-library/node/blob/d017d679e92e84a810c580cdb29fcdbba23c2bb9/0.11/Dockerfile)
|
29
appendix_repo/redis.md
Normal file
29
appendix_repo/redis.md
Normal file
@ -0,0 +1,29 @@
|
||||
## [Redis](https://registry.hub.docker.com/_/redis/)
|
||||
|
||||
### 基本信息
|
||||
[Redis](https://en.wikipedia.org/wiki/Redis)是开源的内存Key-Value数据库实现。
|
||||
该仓库提供了Redis从2.6到2.8.9各个版本的镜像。
|
||||
|
||||
### 使用方法
|
||||
默认会在`6379`端口启动数据库。
|
||||
```
|
||||
$ sudo docker run --name some-redis -d redis
|
||||
```
|
||||
另外还可以启用[持久存储](http://redis.io/topics/persistence)。
|
||||
```
|
||||
$ sudo docker run --name some-redis -d redis redis-server --appendonly yes
|
||||
```
|
||||
默认数据存储位置在`VOLUME/data`。可以使用`--volumes-from some-volume-container`或`-v /docker/host/dir:/data`将数据存放到本地。
|
||||
|
||||
使用其他应用连接到容器,可以用
|
||||
```
|
||||
$ sudo docker run --name some-app --link some-redis:redis -d application-that-uses-redis
|
||||
```
|
||||
或者通过`redis-cli`
|
||||
```
|
||||
$ sudo docker run -it --link some-redis:redis --rm redis sh -c 'exec redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"'
|
||||
```
|
||||
|
||||
### Dockerfile
|
||||
* [2.6版本](https://github.com/docker-library/redis/blob/02d9cd887a4e0d50db4bb085eab7235115a6fe4a/2.6.17/Dockerfile)
|
||||
* [最新2.8版本](https://github.com/docker-library/redis/blob/d0665bb1bbddd4cc035dbc1fc774695fa534d648/2.8.13/Dockerfile)
|
17
appendix_repo/ubuntu.md
Normal file
17
appendix_repo/ubuntu.md
Normal file
@ -0,0 +1,17 @@
|
||||
## [Ubuntu](https://registry.hub.docker.com/_/ubuntu/)
|
||||
|
||||
### 基本信息
|
||||
[Ubuntu](https://en.wikipedia.org/wiki/Ubuntu)是流行的Linux发行版,其自带软件版本往往较新一些。
|
||||
该仓库提供了Ubuntu从12.04到14.10各个版本的镜像。
|
||||
|
||||
### 使用方法
|
||||
默认会启动一个最小化的Ubuntu环境。
|
||||
```
|
||||
$ sudo docker run --name some-ubuntu -i -t ubuntu
|
||||
root@523c70904d54:/#
|
||||
```
|
||||
|
||||
### Dockerfile
|
||||
* [12.04版本](https://github.com/tianon/docker-brew-ubuntu-core/blob/2b105575647a7e2030ff344d427c3920b89e17a9/precise/Dockerfile)
|
||||
* [14.04版本](https://github.com/tianon/docker-brew-ubuntu-core/blob/2b105575647a7e2030ff344d427c3920b89e17a9/trusty/Dockerfile)
|
||||
* [14.10版本](https://github.com/tianon/docker-brew-ubuntu-core/blob/2b105575647a7e2030ff344d427c3920b89e17a9/utopic/Dockerfile)
|
19
appendix_repo/wordpress.md
Normal file
19
appendix_repo/wordpress.md
Normal file
@ -0,0 +1,19 @@
|
||||
## [WordPress](https://registry.hub.docker.com/_/wordpress/)
|
||||
|
||||
### 基本信息
|
||||
[WordPress](https://en.wikipedia.org/wiki/WordPress)是开源的Blog和内容管理系统框架,它基于PhP和MySQL。
|
||||
该仓库提供了WordPress 4.0版本的镜像。
|
||||
|
||||
### 使用方法
|
||||
启动容器需要MySQL的支持,默认端口为`80`。
|
||||
```
|
||||
$ sudo docker run --name some-wordpress --link some-mysql:mysql -d wordpress
|
||||
```
|
||||
启动WordPress容器时可以指定的一些环境参数包括
|
||||
* `-e WORDPRESS_DB_USER=...` 缺省为“root”
|
||||
* `-e WORDPRESS_DB_PASSWORD=...` 缺省为连接mysql容器的环境变量`MYSQL_ROOT_PASSWORD`的值
|
||||
* `-e WORDPRESS_DB_NAME=...` 缺省为“wordpress”
|
||||
* `-e WORDPRESS_AUTH_KEY=...`, `-e WORDPRESS_SECURE_AUTH_KEY=...`, `-e WORDPRESS_LOGGED_IN_KEY=...`, `-e WORDPRESS_NONCE_KEY=...`, `-e WORDPRESS_AUTH_SALT=...`, `-e WORDPRESS_SECURE_AUTH_SALT=...`, `-e WORDPRESS_LOGGED_IN_SALT=...`, `-e WORDPRESS_NONCE_SALT=...` 缺省为随机sha1串
|
||||
|
||||
### Dockerfile
|
||||
* [4.0版本](https://github.com/docker-library/wordpress/blob/aee00669e7c43f435f021cb02871bffd63d5677a/Dockerfile)
|
Loading…
Reference in New Issue
Block a user