From c273ef26318b5eb6b0b26be752bc8b0d63bd976f Mon Sep 17 00:00:00 2001 From: xoyabc Date: Sat, 16 May 2020 12:16:09 +0800 Subject: [PATCH 01/18] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 替换错别字 --- 4/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/4/README.md b/4/README.md index b5bdb90..fef2551 100644 --- a/4/README.md +++ b/4/README.md @@ -166,7 +166,7 @@ $ sudo docker run -it jamtur01/test /bin/ps ENTRYPOINT ["/usr/sbin/nginx"] ``` -讲`-g "daemon off;"`作为参数传递给ENTRYPOINT指令 +将`-g "daemon off;"`作为参数传递给ENTRYPOINT指令 ``` $ sudo docker run -it jamtur01/static_web -g "daemon off;" ``` @@ -281,4 +281,4 @@ $ sudo docker rmi jamtur01/static_web 删除所有镜像 ``` $ sudo docker rmi `sudo docker ps imgages -a -q` -``` \ No newline at end of file +``` From 6f138a7aaf47298f5af3aff3cbb08a76d1b306f8 Mon Sep 17 00:00:00 2001 From: xoyabc Date: Sat, 16 May 2020 16:24:51 +0800 Subject: [PATCH 02/18] Update README.md remove ps of `docker imgages` --- 4/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4/README.md b/4/README.md index fef2551..4822e43 100644 --- a/4/README.md +++ b/4/README.md @@ -280,5 +280,5 @@ $ sudo docker rmi jamtur01/static_web 删除所有镜像 ``` -$ sudo docker rmi `sudo docker ps imgages -a -q` +$ sudo docker rmi `sudo docker imgages -a -q` ``` From 03e9c4402c0a18ba9615f58172e9cd471e7c6e0a Mon Sep 17 00:00:00 2001 From: xoyabc Date: Mon, 15 Jun 2020 01:28:06 +0800 Subject: [PATCH 03/18] Update README.md --- 5/README.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/5/README.md b/5/README.md index 326a329..91b4761 100644 --- a/5/README.md +++ b/5/README.md @@ -14,6 +14,19 @@ $ wget http://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/5/s $ cd .. ``` +Dockerfile 内容 + +``` +FROM ubuntu:14.04 +MAINTAINER James Turnbull "james@example.com" +ENV REFRESHED_AT 2014-06-01 +RUN apt-get -yqq update && apt-get -yqq install nginx +RUN mkdir -p /var/www/html/website +ADD nginx/global.conf /etc/nginx/conf.d/ +ADD nginx/nginx.conf /etc/nginx/nginx.conf +EXPOSE 80 +``` + 构建新的Nginx镜像 ``` $ sudo docker build -t jamtur01/nginx . @@ -245,4 +258,4 @@ $ sudo docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword #### 创建多配置作业 -创建`Docker_matrix_job`多配置项目,选择Git并指定测试仓库`https://github.com/jamtur01/docker-jenkins-sample.git`,点击`Add Axis`按钮,并选择`User-defined Axis`,定义名字为`OS`,值为`centos debian ubuntu`,选择`Delete workspace before build starts`在构建前删除工作空间,点击`Add Build Step`增加一个构建步骤,选择`Execute shell`,使用定义的脚本来启动测试Docker,点击`Add post-build action`加入构建后的动作,加入一个`Publish JUnit test result report`公布JUnit测试结果报告,指定`Test report XMLs`测试报告的XML文件为`spec/reports/*.xml`,最后点击Save保存作业 \ No newline at end of file +创建`Docker_matrix_job`多配置项目,选择Git并指定测试仓库`https://github.com/jamtur01/docker-jenkins-sample.git`,点击`Add Axis`按钮,并选择`User-defined Axis`,定义名字为`OS`,值为`centos debian ubuntu`,选择`Delete workspace before build starts`在构建前删除工作空间,点击`Add Build Step`增加一个构建步骤,选择`Execute shell`,使用定义的脚本来启动测试Docker,点击`Add post-build action`加入构建后的动作,加入一个`Publish JUnit test result report`公布JUnit测试结果报告,指定`Test report XMLs`测试报告的XML文件为`spec/reports/*.xml`,最后点击Save保存作业 From b75056d86b257abd1d6708d6805a23a340887926 Mon Sep 17 00:00:00 2001 From: xoyabc Date: Mon, 15 Jun 2020 23:03:23 +0800 Subject: [PATCH 04/18] Update README.md --- 5/README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/5/README.md b/5/README.md index 91b4761..3629c7d 100644 --- a/5/README.md +++ b/5/README.md @@ -77,6 +77,24 @@ $ mkdir sinatra && cd sinatra $ touch Dockerfile ``` +Dockerfile 内容 + +``` +FROM ubuntu:14.04 +MAINTAINER James Turnbull "james@example.com" +ENV REFRESHED_AT 2014-06-01 + +RUN apt-get -yqq update && apt-get -yqq install ruby ruby-dev build-essential redis-tools +RUN gem install --no-rdoc --no-ri sinatra json redis + +RUN mkdir -p /opt/webapp + +EXPOSE 4567 + +CMD [ "/opt/webapp/bin/webapp" ] +``` + + 构建新的Sinatra镜像 ``` $ sudo docker build -t jamtur01/sinatra . From 43b8aad0bade934e89321027638e9db381bcdcfd Mon Sep 17 00:00:00 2001 From: xoyabc Date: Tue, 16 Jun 2020 00:59:21 +0800 Subject: [PATCH 05/18] Update README.md --- 5/README.md | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/5/README.md b/5/README.md index 3629c7d..70b77cb 100644 --- a/5/README.md +++ b/5/README.md @@ -20,11 +20,27 @@ Dockerfile 内容 FROM ubuntu:14.04 MAINTAINER James Turnbull "james@example.com" ENV REFRESHED_AT 2014-06-01 -RUN apt-get -yqq update && apt-get -yqq install nginx -RUN mkdir -p /var/www/html/website -ADD nginx/global.conf /etc/nginx/conf.d/ -ADD nginx/nginx.conf /etc/nginx/nginx.conf -EXPOSE 80 + +RUN apt-get -yqq update && apt-get -yqq install wget curl gnupg2 libcurl3 build-essential redis-tools +RUN apt-get install -y --force-yes zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev + +RUN cd /tmp +COPY ruby-2.5.0.tar.gz /tmp/ +#RUN wget http://ftp.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz +#RUN wget http://mirrors.nju.edu.cn/ruby/2.5/ruby-2.5.0.tar.gz +RUN tar -xvzf /tmp/ruby-2.5.0.tar.gz -C /tmp/ +RUN cd /tmp/ruby-2.5.0/ && ./configure --prefix=/usr/local; make; make install +RUN ruby -v + +RUN ln -s /usr/local/bin/ruby /usr/bin/ruby + +RUN gem install --no-rdoc --no-ri sinatra json redis + +RUN mkdir -p /opt/webapp + +EXPOSE 4567 + +CMD [ "/opt/webapp/bin/webapp" ] ``` 构建新的Nginx镜像 From 14b633b59467681fa467e3050db3fde34c232cb0 Mon Sep 17 00:00:00 2001 From: xoyabc Date: Tue, 16 Jun 2020 01:22:45 +0800 Subject: [PATCH 06/18] Update README.md --- 5/README.md | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/5/README.md b/5/README.md index 70b77cb..78140cc 100644 --- a/5/README.md +++ b/5/README.md @@ -20,27 +20,11 @@ Dockerfile 内容 FROM ubuntu:14.04 MAINTAINER James Turnbull "james@example.com" ENV REFRESHED_AT 2014-06-01 - -RUN apt-get -yqq update && apt-get -yqq install wget curl gnupg2 libcurl3 build-essential redis-tools -RUN apt-get install -y --force-yes zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev - -RUN cd /tmp -COPY ruby-2.5.0.tar.gz /tmp/ -#RUN wget http://ftp.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz -#RUN wget http://mirrors.nju.edu.cn/ruby/2.5/ruby-2.5.0.tar.gz -RUN tar -xvzf /tmp/ruby-2.5.0.tar.gz -C /tmp/ -RUN cd /tmp/ruby-2.5.0/ && ./configure --prefix=/usr/local; make; make install -RUN ruby -v - -RUN ln -s /usr/local/bin/ruby /usr/bin/ruby - -RUN gem install --no-rdoc --no-ri sinatra json redis - -RUN mkdir -p /opt/webapp - -EXPOSE 4567 - -CMD [ "/opt/webapp/bin/webapp" ] +RUN apt-get -yqq update && apt-get -yqq install nginx +RUN mkdir -p /var/www/html/website +ADD nginx/global.conf /etc/nginx/conf.d/ +ADD nginx/nginx.conf /etc/nginx/nginx.conf +EXPOSE 80 ``` 构建新的Nginx镜像 @@ -100,7 +84,19 @@ FROM ubuntu:14.04 MAINTAINER James Turnbull "james@example.com" ENV REFRESHED_AT 2014-06-01 -RUN apt-get -yqq update && apt-get -yqq install ruby ruby-dev build-essential redis-tools +RUN apt-get -yqq update && apt-get -yqq install wget curl gnupg2 libcurl3 build-essential redis-tools +RUN apt-get install -y --force-yes zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev + +RUN cd /tmp +COPY ruby-2.5.0.tar.gz /tmp/ +#RUN wget http://ftp.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz +#RUN wget http://mirrors.nju.edu.cn/ruby/2.5/ruby-2.5.0.tar.gz +RUN tar -xvzf /tmp/ruby-2.5.0.tar.gz -C /tmp/ +RUN cd /tmp/ruby-2.5.0/ && ./configure --prefix=/usr/local; make; make install +RUN ruby -v + +RUN ln -s /usr/local/bin/ruby /usr/bin/ruby + RUN gem install --no-rdoc --no-ri sinatra json redis RUN mkdir -p /opt/webapp From 2fcd1c4ddaa99f9405e86730ff0225408c45824b Mon Sep 17 00:00:00 2001 From: xoyabc Date: Wed, 17 Jun 2020 00:40:31 +0800 Subject: [PATCH 07/18] Update README.md --- 5/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/5/README.md b/5/README.md index 78140cc..827ad6e 100644 --- a/5/README.md +++ b/5/README.md @@ -176,6 +176,19 @@ $ mkdir sinatra/redis && cd sinatra/redis $ touch Dockerfile ``` +Dockerfile 内容 +``` +FROM ubuntu:14.04 +MAINTAINER James Turnbull "james@example.com" +ENV REFRESHED_AT 2014-06-01 + +RUN apt-get -yqq update && apt-get -yqq install redis-server redis-tools + +EXPOSE 6379 + +ENTRYPOINT ["/usr/bin/redis-server"] +``` + 构建Redis镜像 ``` $ sudo docker build -t jamtur01/redis . From f92d3acfce50f20997c23a3545dce99dcd301183 Mon Sep 17 00:00:00 2001 From: xoyabc Date: Wed, 17 Jun 2020 00:57:55 +0800 Subject: [PATCH 08/18] Update README.md --- 5/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/5/README.md b/5/README.md index 827ad6e..413c1e4 100644 --- a/5/README.md +++ b/5/README.md @@ -183,6 +183,7 @@ MAINTAINER James Turnbull "james@example.com" ENV REFRESHED_AT 2014-06-01 RUN apt-get -yqq update && apt-get -yqq install redis-server redis-tools +RUN sysctl -w vm.overcommit_memory=1 EXPOSE 6379 From eb8fc03e58f0fd74c28062aedf014afe725fcae5 Mon Sep 17 00:00:00 2001 From: xoyabc Date: Sun, 21 Jun 2020 03:18:51 +0800 Subject: [PATCH 09/18] Update README.md --- 5/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/5/README.md b/5/README.md index 413c1e4..704666e 100644 --- a/5/README.md +++ b/5/README.md @@ -264,8 +264,9 @@ $ sudo docker run -d --net=app --name db jamtur01/redis 链接redis容器 ``` $ sudo docker run -p 4567 \ - --net=app --name webapp \ - -v $PWD/webapp_redis:/opt/webapp jamtur01/sinatra + --net=app --name webapp -t -i \ + -v $PWD/webapp_redis:/opt/webapp jamtur01/sinatra \ + /bin/bash ``` ### Docker用于持续集成 From 1c496c99ecf713db7994664a5619c95f5f93298e Mon Sep 17 00:00:00 2001 From: xoyabc Date: Fri, 26 Jun 2020 22:17:05 +0800 Subject: [PATCH 10/18] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix error: “ln: failed to create symbolic link '/usr/bin/ruby': File exists” --- 5/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/5/README.md b/5/README.md index 704666e..cff49f0 100644 --- a/5/README.md +++ b/5/README.md @@ -95,7 +95,7 @@ RUN tar -xvzf /tmp/ruby-2.5.0.tar.gz -C /tmp/ RUN cd /tmp/ruby-2.5.0/ && ./configure --prefix=/usr/local; make; make install RUN ruby -v -RUN ln -s /usr/local/bin/ruby /usr/bin/ruby +RUN ln -sf /usr/local/bin/ruby /usr/bin/ruby RUN gem install --no-rdoc --no-ri sinatra json redis From 0256407bae67c90cad98977818696915a0edf99f Mon Sep 17 00:00:00 2001 From: xoyabc Date: Fri, 26 Jun 2020 22:54:47 +0800 Subject: [PATCH 11/18] Update README.md --- 5/README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/5/README.md b/5/README.md index cff49f0..21e543b 100644 --- a/5/README.md +++ b/5/README.md @@ -304,3 +304,28 @@ $ sudo docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword #### 创建多配置作业 创建`Docker_matrix_job`多配置项目,选择Git并指定测试仓库`https://github.com/jamtur01/docker-jenkins-sample.git`,点击`Add Axis`按钮,并选择`User-defined Axis`,定义名字为`OS`,值为`centos debian ubuntu`,选择`Delete workspace before build starts`在构建前删除工作空间,点击`Add Build Step`增加一个构建步骤,选择`Execute shell`,使用定义的脚本来启动测试Docker,点击`Add post-build action`加入构建后的动作,加入一个`Publish JUnit test result report`公布JUnit测试结果报告,指定`Test report XMLs`测试报告的XML文件为`spec/reports/*.xml`,最后点击Save保存作业 + + +### FAQ + + - Q: + +``` +Step 12/15 : RUN gem install --no-rdoc --no-ri jekyll + ---> Running in badbe1b0e565 +ERROR: Loading command: install (LoadError) + cannot load such file -- zlib +ERROR: While executing gem ... (NoMethodError) + undefined method `invoke_with_build_args' for nil:NilClass +The command '/bin/sh -c gem install --no-rdoc --no-ri jekyll' returned a non-zero code: 1 +``` + + - A: + + ``` + Dockerfile 中增加 + RUN apt-get install -y --force-yes zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev + ``` + + + From 99c9f6f759a44c8472c15d405fcc2c9a19c5861a Mon Sep 17 00:00:00 2001 From: xoyabc Date: Sat, 27 Jun 2020 01:18:56 +0800 Subject: [PATCH 12/18] Update README.md fix 'Configuration file: none' error when mounting a volume to docker. --- 6/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/6/README.md b/6/README.md index 9ea034f..af55b32 100644 --- a/6/README.md +++ b/6/README.md @@ -54,7 +54,7 @@ $ rm -rf james_blog/.git 创建Jekyll容器 ``` -$ sudo docker run -v james_blog:/data --name james_blog jamtur01/jekyll +$ sudo docker run -v $PWD/james_blog:/data --name james_blog jamtur01/jekyll ``` 卷的几个有用的特征 @@ -355,4 +355,4 @@ $ sudo docker kill -s 获取容器的进程ID ``` $ sudo docker inspect --format '{{.State.Pid}}' -``` \ No newline at end of file +``` From 8941661957bc6a163b0e8fbf263e99ddefd055e0 Mon Sep 17 00:00:00 2001 From: xoyabc Date: Sat, 27 Jun 2020 12:44:49 +0800 Subject: [PATCH 13/18] Update README.md --- 6/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/6/README.md b/6/README.md index af55b32..e4eaa0c 100644 --- a/6/README.md +++ b/6/README.md @@ -199,9 +199,10 @@ $ sudo docker port tprov 创建Node.js的Dockerfile ``` -$ mkdir -p nodejs/nodeapp && cd nodejs +$ mkdir -p nodejs/nodeapp && cd nodejs/nodeapp $ wget https://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/6/node/nodejs/nodeapp/package.json -P nodeapp $ wget https://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/6/node/nodejs/nodeapp/server.js -P nodeapp +$ cd .. $ touch Dockerfile ``` From b317f92cfdd4d14aa05fc7278e06e137c7c36a1e Mon Sep 17 00:00:00 2001 From: xoyabc Date: Sat, 27 Jun 2020 15:07:32 +0800 Subject: [PATCH 14/18] Update README.md --- 6/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6/README.md b/6/README.md index e4eaa0c..3b94329 100644 --- a/6/README.md +++ b/6/README.md @@ -274,7 +274,7 @@ $ sudo docker run -it --rm --volumes-from redis_primary ubuntu cat /var/log/redi 运行第一个Redis副本容器 ``` -$ sudo docker run -d -h redis_repilica1 --name redis_repilica1 --net express jamtur01/redis_replica +$ sudo docker run -d -h redis_repilica1 --name redis_replica1 --net express jamtur01/redis_replica ``` 读取Redis副本容器的日志 From 4fe24bcf8097ec1b5e8dcb0016da58407b12a728 Mon Sep 17 00:00:00 2001 From: xoyabc Date: Sat, 27 Jun 2020 15:08:23 +0800 Subject: [PATCH 15/18] Update README.md --- 6/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6/README.md b/6/README.md index 3b94329..fd24c5b 100644 --- a/6/README.md +++ b/6/README.md @@ -274,7 +274,7 @@ $ sudo docker run -it --rm --volumes-from redis_primary ubuntu cat /var/log/redi 运行第一个Redis副本容器 ``` -$ sudo docker run -d -h redis_repilica1 --name redis_replica1 --net express jamtur01/redis_replica +$ sudo docker run -d -h redis_replica1 --name redis_replica1 --net express jamtur01/redis_replica ``` 读取Redis副本容器的日志 From 51b4f1877c67e00e6a5c58b680b1145920876706 Mon Sep 17 00:00:00 2001 From: xoyabc Date: Sun, 28 Jun 2020 01:10:18 +0800 Subject: [PATCH 16/18] Update README.md --- 6/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/6/README.md b/6/README.md index fd24c5b..d7831fc 100644 --- a/6/README.md +++ b/6/README.md @@ -353,7 +353,26 @@ $ sudo docker logs -f logstash $ sudo docker kill -s ``` +安装 nsenter +``` +$ sudo docker run -v /usr/local/bin/:/target jpetazzo/nsenter +``` + 获取容器的进程ID ``` $ sudo docker inspect --format '{{.State.Pid}}' ``` + +使用 nsenter 进入容器 +``` +$ sudo nsenter --target $PID --mount --uts --ipc --net --pid +``` + +使用 nsenter 在容器内执行命令 +``` +sudo nsenter --target $PID --mount --uts --ipc --net --pid ls +``` + + + + From bec358d447a9acfb3940432f9e49e6e3ec3db614 Mon Sep 17 00:00:00 2001 From: xoyabc Date: Wed, 8 Jul 2020 23:41:50 +0800 Subject: [PATCH 17/18] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加双引号 --- 8/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/8/README.md b/8/README.md index c45838f..5055b8b 100644 --- a/8/README.md +++ b/8/README.md @@ -83,7 +83,7 @@ http://docker.example.com:2375/containers/create \ 通过API创建容器,提供更多配置 ``` $ curl -X POST -H "Content-Type: application/json" \ -http://docker.example.com:2375/containers/create?name=jekyll" \ +"http://docker.example.com:2375/containers/create?name=jekyll" \ -d '{ "Image": "jamtur01/jekyll", "Hostname": "jekyll" @@ -230,4 +230,4 @@ $ cp client-cert.pem ~/.docker/cert.pem 测试TLS连接 ``` $ sudo docker -H docker.example.com:2376 --tlsverify info -``` \ No newline at end of file +``` From 6b17d50a52173b5e259eb519dce83dff9b1e6766 Mon Sep 17 00:00:00 2001 From: xoyabc Date: Thu, 9 Jul 2020 02:05:46 +0800 Subject: [PATCH 18/18] Update README.md --- 8/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/8/README.md b/8/README.md index 5055b8b..f0029cc 100644 --- a/8/README.md +++ b/8/README.md @@ -142,6 +142,8 @@ $ sudo openssl genrsa -des3 -out server-key.pem $ sudo openssl req -new -key server-key.pem -out server.csr ``` +注意需要设置 CN (Common Name) 为 **docker.example.com** + 对CSR进行签名 ``` $ sudo openssl x509 -req -days 365 -in server.csr -CA ca.pem \