diff --git a/README.md b/README.md index 178ef96..ad5b829 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Docker —— 从入门到实践 =============== -v0.2.3 +v0.2.4 [Docker](docker.com)是个伟大的项目,它彻底释放了虚拟化的威力,让应用的分发、部署和管理都变得前所未有的高效和轻松! diff --git a/SUMMARY.md b/SUMMARY.md index b4070a2..4d21ab6 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -28,7 +28,8 @@ * [删除](container/rm.md) * [仓库](repository/README.md) * [Docker Hub](repository/dockerhub.md) - * [私有仓库](repository/management.md) + * [私有仓库](repository/local_repo.md) + * [配置文件](repository/config.md) * [数据管理](data_management/README.md) * [数据卷](data_management/volume.md) * [数据卷容器](data_management/container.md) diff --git a/basic_concept/repository.md b/basic_concept/repository.md index d03a4ba..66268e7 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -6,5 +6,4 @@ 当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上pull下来就可以了。 - *Docker Hub的功能跟GitHub类似;push和pull操作跟git的操作类似。 diff --git a/dockerfile/README.md b/dockerfile/README.md index 05c4ace..5dbcb5e 100644 --- a/dockerfile/README.md +++ b/dockerfile/README.md @@ -1,5 +1,5 @@ -#Dockerfile +#Dockerfile配置 TODO -ref: https://github.com/yeasy/docker_practice +https://docs.docker.com/introduction/working-with-docker/#working-with-the-dockerfile diff --git a/image/dockerhub.md b/image/dockerhub.md index 3190afc..5d79f35 100644 --- a/image/dockerhub.md +++ b/image/dockerhub.md @@ -45,6 +45,7 @@ ef52fb1fe610: Download complete $ sudo docker run -t -i centos /bin/bash bash-4.1# ``` +*注:有时候官方镜像下载较慢,可以试试 ###上传镜像 用户也可以通过`docker push`命令,把自己创建的镜像上传到Docker Hub中来共享。 diff --git a/repository/config.md b/repository/config.md new file mode 100644 index 0000000..68fdcb1 --- /dev/null +++ b/repository/config.md @@ -0,0 +1,4 @@ +## 仓库配置文件 +TODO + + diff --git a/repository/management.md b/repository/local_repo.md similarity index 74% rename from repository/management.md rename to repository/local_repo.md index c980a1e..2ee61e2 100644 --- a/repository/management.md +++ b/repository/local_repo.md @@ -4,16 +4,16 @@ 本节介绍如何使用本地仓库。 -docker-registry是官方提供的工具,可以用于构建私有的镜像仓库。 -###安装docker-registry -#### 系统自带 -在安装了Docker后,系统中就自带了`docker-registry`工具,可以运行 +`docker-registry`是官方提供的工具,可以用于构建私有的镜像仓库。 +###安装运行docker-registry +#### 容器运行 +在安装了Docker后,可以通过获取官方registry镜像来运行。 ``` -docker run -p 5000:5000 registry +$ sudo docker run -p 5000:5000 registry ``` 这将使用官方的registry镜像来启动本地的私有仓库。可以通过指定参数来配置私有仓库位置,例如配置镜像存储到Amazon的S3服务。 ``` -docker run \ +$ sudo docker run \ -e SETTINGS_FLAVOR=s3 \ -e AWS_BUCKET=acme-docker \ -e STORAGE_PATH=/registry \ @@ -23,18 +23,42 @@ docker run \ -p 5000:5000 \ registry ```` +此外,还可以指定本地路径(如`/home/user/registry-conf`)下的配置文件。 +``` +$ sudo docker run -p 5000:5000 -v /home/user/registry-conf:/registry-conf -e DOCKER_REGISTRY_CONFIG=/registry-conf/config.yml registry +``` -#### 源码安装 -从[docker-registry](https://github.com/docker/docker-registry)项目下载源码安装。 +#### 本地安装 +对于Ubuntu或CentOS等发型包,可以直接通过源安装。 +* Ubuntu +``` +$ sudo apt-get install -y build-essential python-dev libevent-dev python-pip liblzma-dev +$ sudo pip install docker-registry +``` +* CentOS +``` +$ sudo yum install -y python-devel libevent-devel python-pip gcc xz-devel +$ sudo python-pip install docker-registry +``` + +也可以从[docker-registry](https://github.com/docker/docker-registry)项目下载源码进行安装。 ``` $ sudo apt-get install build-essential python-dev libevent-dev python-pip libssl-dev liblzma-dev libffi-dev +$ git clone https://github.com/docker/docker-registry.git +$ cd git-registry $ sudo pip install . ``` -然后修改配置文件,主要修改`storage_path`到本地的存储仓库的路径,之后启动Web服务。 +然后修改配置文件,主要修改dev模板段的`storage_path`到本地的存储仓库的路径。 ``` $ cp config/config_sample.yml config/config.yml -$ #do some change to config.yml -$ sudo /usr/bin/gunicorn --debug -k gevent -b 0.0.0.0:5000 -w 8 docker_registry.wsgi:application +``` +之后启动Web服务。 +``` +$ sudo gunicorn -c contrib/gunicorn.py docker_registry.wsgi:application +``` +或者 +``` +$ sudo gunicorn --access-logfile - --error-logfile - -k gevent -b 0.0.0.0:5000 -w 4 --max-requests 100 docker_registry.wsgi:application ``` 此时使用访问本地的5000端口,看到输出docker-registry的版本信息说明运行成功。