<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docker on 冯威的博客</title><link>https://fwhyy.com/tags/docker/</link><description>Recent content in Docker on 冯威的博客</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Tue, 14 May 2024 08:40:00 +0800</lastBuildDate><atom:link href="https://fwhyy.com/tags/docker/atom.xml" rel="self" type="application/rss+xml"/><item><title>迁移Wordpress到Docker</title><link>https://fwhyy.com/2024/05/migrating-wordpress-to-docker/</link><pubDate>Tue, 14 May 2024 08:40:00 +0800</pubDate><guid>https://fwhyy.com/2024/05/migrating-wordpress-to-docker/</guid><description>&lt;p&gt;很多年前我的个人博客是部署在 Linode 的服务器，后来又给女儿弄了一个博客记录女儿的成长，使用的是 Wordpress ，老婆执笔。现在我的博客早已迁移到了 github ，女儿也长大了，博客好几年没有更新，准备停掉 linode 服务器，将女儿博客迁移到本地。&lt;/p&gt;</description></item><item><title>能更好集成容器的反向代理Traefik简单使用</title><link>https://fwhyy.com/2024/03/traefik-is-easy-to-use/</link><pubDate>Fri, 29 Mar 2024 08:13:56 +0800</pubDate><guid>https://fwhyy.com/2024/03/traefik-is-easy-to-use/</guid><description>&lt;p&gt;traefik 与 nginx 一样，也是一款优秀的反向代理工具，使用 go 语言开发，本文将介绍怎样用 traefik 来实现我的需求。&lt;/p&gt;</description></item><item><title>Docker日志大小限制和切换存储目录</title><link>https://fwhyy.com/2023/03/docker-log-size-limits-and-switching-storage-directories/</link><pubDate>Tue, 28 Mar 2023 11:35:16 +0800</pubDate><guid>https://fwhyy.com/2023/03/docker-log-size-limits-and-switching-storage-directories/</guid><description>&lt;p&gt;产品的各种环境使用了很多 &lt;code&gt;CentOS&lt;/code&gt; 虚拟机，默认情况下 &lt;code&gt;root&lt;/code&gt; 目录空间是 50 G，随着使用时间越来越长，空间会变得不够用。&lt;/p&gt;</description></item><item><title>dotNet Core 3.1 使用 Aspose （部署 Docker）</title><link>https://fwhyy.com/2020/10/dotnet-core-3-1-uses-aspose-deploy-docker/</link><pubDate>Mon, 19 Oct 2020 07:48:55 +0800</pubDate><guid>https://fwhyy.com/2020/10/dotnet-core-3-1-uses-aspose-deploy-docker/</guid><description>&lt;p&gt;在之前的文章《Dotnet Core 中使用Aspose（部署Docker）》中介绍了在 dotNet Core2.1 中使用 Aspose ，并部署到 Docker 中，现在 dotNET Core 升级到了 3.1 ，Docker 镜像发生了变化，一些依赖的安装也有些变化。&lt;/p&gt;</description></item><item><title>“兼职”运维的常用命令</title><link>https://fwhyy.com/2019/11/common-orders-for-part-time-operation-and-maintenance/</link><pubDate>Mon, 18 Nov 2019 23:49:54 +0800</pubDate><guid>https://fwhyy.com/2019/11/common-orders-for-part-time-operation-and-maintenance/</guid><description>&lt;p&gt;自从产品转到了 dotNET Core 之后，更深入的接触 Linux和 Docker ，而我每天的工作中，有一部分时间相当于在“兼职”做一些运维的事情。下面是一些在日常中常用的命令，算是个备忘吧。&lt;/p&gt;</description></item><item><title>发布dotNetCore程序到Kubernetes</title><link>https://fwhyy.com/2019/05/publish-dotnetcore-program-to-kubernetes/</link><pubDate>Sun, 12 May 2019 11:02:54 +0800</pubDate><guid>https://fwhyy.com/2019/05/publish-dotnetcore-program-to-kubernetes/</guid><description>&lt;p&gt;上一篇《&lt;a href="http://fwhyy.com/2019/05/building-kubernetes-in-mac/"&gt;Mac中搭建Kubernetes&lt;/a&gt;》介绍了怎样在Mac中搭建单节点的&lt;code&gt;Kubernetes&lt;/code&gt;，本文将编写一个&lt;code&gt;dotNetCore&lt;/code&gt;的示例程序，并发布到&lt;code&gt;Kubernetes&lt;/code&gt;中。&lt;/p&gt;</description></item><item><title>Mac中搭建Kubernetes</title><link>https://fwhyy.com/2019/05/building-kubernetes-in-mac/</link><pubDate>Fri, 03 May 2019 22:33:22 +0800</pubDate><guid>https://fwhyy.com/2019/05/building-kubernetes-in-mac/</guid><description>&lt;p&gt;&lt;code&gt;Kubernetes&lt;/code&gt;是&lt;code&gt;Google&lt;/code&gt;和&lt;code&gt;RadHat&lt;/code&gt;公司共同主导的开源容器编排项目，功能非常强大，也非常的火热和流行，但同时里面也有很多的概念和名词需要我们去学习和理解。学习任何一个技术先需要把基础环境搭建起来，本篇就介绍怎样在&lt;code&gt;Mac&lt;/code&gt;中启动单节点的&lt;code&gt;Kubernetes&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>dotNET Core中使用Aspose（部署Docker）</title><link>https://fwhyy.com/2018/11/using-aspose-in-dotnet-core/</link><pubDate>Thu, 22 Nov 2018 23:07:45 +0800</pubDate><guid>https://fwhyy.com/2018/11/using-aspose-in-dotnet-core/</guid><description>&lt;p&gt;在&lt;code&gt;dotnet&lt;/code&gt;下处理过&lt;code&gt;Office&lt;/code&gt;文档的相信对&lt;code&gt;Aspose&lt;/code&gt;都不陌生，&lt;code&gt;Aspose&lt;/code&gt;下面的三大组件：&lt;code&gt;Aspose.Cells&lt;/code&gt;、&lt;code&gt;Aspose.Slides&lt;/code&gt;、&lt;code&gt;Aspose.Words&lt;/code&gt;可以让我们很方便的操作&lt;code&gt;Office&lt;/code&gt;文档，或者将&lt;code&gt;Office&lt;/code&gt;导出为&lt;code&gt;PDF&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>GitLab配合Jenkins打造自动化部署</title><link>https://fwhyy.com/2018/07/gitlab-combined-with-jenkins-to-build-automated-deployment/</link><pubDate>Sat, 14 Jul 2018 11:20:31 +0800</pubDate><guid>https://fwhyy.com/2018/07/gitlab-combined-with-jenkins-to-build-automated-deployment/</guid><description>&lt;p&gt;&lt;code&gt;GitLab&lt;/code&gt;有&lt;code&gt;CI&lt;/code&gt;和&lt;code&gt;CD&lt;/code&gt;功能模块，但我对&lt;code&gt;Jenkins&lt;/code&gt;更熟悉些，所以先使用&lt;code&gt;Jenkins&lt;/code&gt;将自动发布搭建起来，后面再继续研究&lt;code&gt;GitLab&lt;/code&gt;的&lt;code&gt;CI&lt;/code&gt;和&lt;code&gt;CD&lt;/code&gt;功能。&lt;/p&gt;</description></item><item><title>Docker 常用命令</title><link>https://fwhyy.com/2018/06/docker-common-commands/</link><pubDate>Sat, 09 Jun 2018 07:49:07 +0800</pubDate><guid>https://fwhyy.com/2018/06/docker-common-commands/</guid><description>&lt;p&gt;学习&lt;code&gt;Docker&lt;/code&gt;有段时间了，所有的操作都是在命令行下，如果不是每天都在使用，很容易忘记命令。本文将以学习&lt;code&gt;Docker&lt;/code&gt;的角度，从前到后，将一些常用的&lt;code&gt;Docker&lt;/code&gt;命令记录下来，算是个备忘。&lt;/p&gt;</description></item><item><title>Docker安装MySql-挂载外部数据和配置</title><link>https://fwhyy.com/2018/05/docker-installs-mysql-to-mount-external-data-and-configuration/</link><pubDate>Sun, 20 May 2018 09:18:37 +0800</pubDate><guid>https://fwhyy.com/2018/05/docker-installs-mysql-to-mount-external-data-and-configuration/</guid><description>&lt;p&gt;在上一篇中《&lt;a href="http://fwhyy.com/2018/04/Install-MySql-with-Docker-in-CentOS7/"&gt;在CentOS7中使用Docker安装MySql&lt;/a&gt;》中介绍了怎样在&lt;code&gt;Docker&lt;/code&gt;中安装&lt;code&gt;Mysql&lt;/code&gt;，但存在两个问题：&lt;/p&gt;
&lt;p&gt;1、用户密码和字符集等的设置，需要安装完&lt;code&gt;MySql&lt;/code&gt;后，进入到&lt;code&gt;MySql&lt;/code&gt;中去设置，非常麻烦；
2、配置文件和数据文件都在&lt;code&gt;MySql&lt;/code&gt;的容器内，不是很安全。&lt;/p&gt;
&lt;p&gt;本文将介绍怎样在创建容器时通过参数的配置来解决上面两个问题。&lt;/p&gt;
&lt;h2 id="环境"&gt;环境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;CentOS：7.4&lt;/li&gt;
&lt;li&gt;Docker：1.13.1&lt;/li&gt;
&lt;li&gt;MySql：8.0.11&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="设置环境变量"&gt;设置环境变量&lt;/h2&gt;
&lt;p&gt;设置环境变量和镜像的参数，可以来解决第一个问题，环境变量使用&lt;code&gt;-e&lt;/code&gt;的方式设置在镜像名称的前面；镜像的参数需要配置在镜像名称的后面&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;docker run -d -p 4306:3306
-e MYSQL_USER=&amp;#34;fengwei&amp;#34;
-e MYSQL_PASSWORD=&amp;#34;pwd123&amp;#34;
-e MYSQL_ROOT_PASSWORD=&amp;#34;rootpwd123&amp;#34;
--name mysql001
mysql/mysql-server
--character-set-server=utf8
--collation-server=utf8_general_ci
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;环境变量说明：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;-e MYSQL_USER=&amp;ldquo;fengwei&amp;rdquo;：添加用户fengwei
-e MYSQL_PASSWORD=&amp;ldquo;pwd123&amp;rdquo;：设置fengwei的密码伟pwd123
-e MYSQL_ROOT_PASSWORD=&amp;ldquo;rootpwd123&amp;rdquo;：设置root的密码伟rootpwd123&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;镜像参数说明：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ndash;character-set-server=utf8：设置字符集为utf8
&amp;ndash;collation-server=utf8_general_ci：设置字符比较规则为utf8_general_ci&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;使用&lt;code&gt;SQLyog&lt;/code&gt;进行测试，用户名和密码使用上面环境变量中添加的用户&lt;code&gt;fengwei&lt;/code&gt;和密码&lt;code&gt;pwd123&lt;/code&gt;，出现下图的错误&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201260826693.webp" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;执行命令进入到容器中的&lt;code&gt;MySql&lt;/code&gt;中，执行下面的&lt;code&gt;Sql&lt;/code&gt;语句&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ALTER USER &amp;#39;fengwei&amp;#39;@&amp;#39;%&amp;#39; IDENTIFIED WITH mysql_native_password BY &amp;#39;password123&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;再用&lt;code&gt;SQLyog&lt;/code&gt;测试，连接成功&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2022/202201260826414.webp" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;上面连接不成功的问题也可以添加镜像参数&lt;code&gt;--default-authentication-plugin=mysql_native_password&lt;/code&gt;来解决，完整命令如下&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;docker run -d -p 4306:3306 
-e MYSQL_USER=&amp;#34;fengwei&amp;#34; 
-e MYSQL_PASSWORD=&amp;#34;pwd123&amp;#34; 
-e MYSQL_ROOT_PASSWORD=&amp;#34;rootpwd123&amp;#34; 
--name mysql001 
mysql/mysql-server 
--character-set-server=utf8 
--collation-server=utf8_general_ci 
--default-authentication-plugin=mysql_native_password 
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="数据和配置挂载到宿主机"&gt;数据和配置挂载到宿主机&lt;/h2&gt;
&lt;p&gt;为了安全性，我们应该将数据和配置放到宿主机中，首先执行下面的命令创建&lt;code&gt;data&lt;/code&gt;目录和&lt;code&gt;config&lt;/code&gt;目录&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;mkdir mysqltest
cd mysqltest
mkdir data
mkdir config
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;执行下面命令进入到&lt;code&gt;config&lt;/code&gt;目录中，并在该目录中创建&lt;code&gt;my.cnf&lt;/code&gt;配置文件&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;cd config
touch my.cnf
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;my.cnf&lt;/code&gt;配置文件内容如下&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;执行下面命令创建容器&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;docker run -d -p 4306:3306 
--restart always 
--privileged=true
--name mysql001
-e MYSQL_USER=&amp;#34;fengwei&amp;#34; 
-e MYSQL_PASSWORD=&amp;#34;pwd123&amp;#34; 
-e MYSQL_ROOT_PASSWORD=&amp;#34;rootpwd123&amp;#34;
-v=/mysqltest/config/my.cnf:/etc/my.cnf 
-v=/mysqltest/data:/var/lib/mysql 
mysql/mysql-server
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;参数说明&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ndash;restart always：开机启动
&amp;ndash;privileged=true：提升容器内权限
-v=/mysqltest/config/my.cnf:/etc/my.cnf：映射配置文件
-v=/mysqltest/data:/var/lib/mysql：映射数据目录&lt;/p&gt;</description></item><item><title>在CentOS7中使用Docker安装MySql</title><link>https://fwhyy.com/2018/05/install-mysql-with-docker-in-centos7/</link><pubDate>Fri, 18 May 2018 22:31:14 +0800</pubDate><guid>https://fwhyy.com/2018/05/install-mysql-with-docker-in-centos7/</guid><description>&lt;h2 id="环境"&gt;环境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;CentOS：7.4&lt;/li&gt;
&lt;li&gt;Docker: 1.13.1&lt;/li&gt;
&lt;li&gt;MySql: 8.0.11&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>在Mac的Docker中运行DotNetCore2.0</title><link>https://fwhyy.com/2017/09/run-netcore-two-in-mac-docker/</link><pubDate>Sat, 09 Sep 2017 23:37:32 +0800</pubDate><guid>https://fwhyy.com/2017/09/run-netcore-two-in-mac-docker/</guid><description>&lt;p&gt;最近学习&lt;code&gt;Angular4&lt;/code&gt;，服务端准备使用&lt;code&gt;DotNetCore API&lt;/code&gt;来实现，本文简单介绍下在&lt;code&gt;Mac&lt;/code&gt;中怎样将&lt;code&gt;DotNetCore&lt;/code&gt;程序部署在&lt;code&gt;Docker&lt;/code&gt;中，并使用&lt;code&gt;Nginx&lt;/code&gt;做反向代理让程序可以跑起来。&lt;/p&gt;
&lt;h2 id="具体步骤如下"&gt;具体步骤如下&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;安装&lt;code&gt;Docker&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;拉取&lt;code&gt;DotNetCore&lt;/code&gt;镜像&lt;/li&gt;
&lt;li&gt;使用&lt;code&gt;VS For Mac&lt;/code&gt;创建&lt;code&gt;DotNetCore&lt;/code&gt;应用&lt;/li&gt;
&lt;li&gt;发布应用到&lt;code&gt;Docker&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;安装&lt;code&gt;Nginx&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;配置&lt;code&gt;Nginx&lt;/code&gt;代理&lt;code&gt;Docker&lt;/code&gt;中的&lt;code&gt;DotNetCore&lt;/code&gt;应用&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Docker学习-安装镜像</title><link>https://fwhyy.com/2017/08/docker-learning-installing-images/</link><pubDate>Thu, 31 Aug 2017 10:47:45 +0800</pubDate><guid>https://fwhyy.com/2017/08/docker-learning-installing-images/</guid><description>&lt;p&gt;Docker现在已不是什么新鲜事物了，Windows Server2016已经内置了Docker，对于我来说，我只想让Docker来帮我解决运行环境的问题。&lt;/p&gt;
&lt;p&gt;我们的产品部署起来会依赖很多的第三方产品：SqlServer、MongoDB、Redis、RabbitMQ等，各种软件等安装，数据库的还原，每次部署都会耗费大量的时间。为了能使部署更加的方便，我们的设想是这样的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在Docker中安装这些工具软件&lt;/li&gt;
&lt;li&gt;打包Docker，拷贝到客户环境中导入&lt;/li&gt;
&lt;li&gt;在Web界面中进行简单的向导配置&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本文主要介绍在Docker中安装这些工具软件。&lt;/p&gt;</description></item></channel></rss>