作者: wcs

  • 守初心,知敬畏,破轮回——读史悟兴衰,明心向远方

    2026-3-18

    读遍中国数千年沧桑,对照世界史的沉浮变迁,我心中渐渐沉淀出一个最深刻的感悟:一个大国、乃至中型国家的覆灭,从来不是败给了外敌的强悍,而是毁于自身的腐朽与内耗;映射到我们每一个人身上,人生的失意与失败,往往也不是源于外界的阻碍,而是始于自身的懈怠与不思进取。这不是空洞的感慨,而是被无数史实反复印证的真理。

    一、立国之优,终成困国之枷——历史轮回的致命枷锁

    读史愈深,愈能发现一条贯穿古今的铁律:一个国家建国之初赖以崛起的优势,若不能与时俱进,终将变成后期拖累自身的致命劣势。这一点,宋朝的兴衰便是最鲜活的注脚。

    赵匡胤生于五代十国的乱世,亲身经历了军阀割据、战乱频仍的苦难,自己亦凭借武力夺取后周天下。他深知武将权重对国家权力的威胁,登基后便以“杯酒释兵权”解除了开国将领的兵权,此后终宋一朝,始终推行“重文抑武”的国策。这套策略,在初期彻底终结了唐末以来藩镇割据的千年顽疾,让宋朝得以在相对安稳的环境中延续百年,成为立国之根基;可这份优势一旦僵化,便成了无法挣脱的枷锁——过度削弱武备,导致宋朝军力孱弱、边防废弛,面对外族入侵始终被动挨打,最终亡于武力不足,当初的立国之优,彻底变成了亡国之祸。

    这样的轮回,在历史上反复上演:秦朝靠严刑峻法、军国主义一统天下,却因制度僵化、暴政不改,二世而亡;汉朝初年以“无为而治、休养生息”崛起,却因后期豪强坐大、中央虚弱,最终走向分裂;唐朝凭开放包容、蕃将用兵走向极盛,也正因边将权重、管控失度,引爆安史之乱,由盛转衰。所谓“凡使你强大者,亦可困死你”,正是对这种路径依赖最深刻的注解——固守过往的成功模式,不愿自我革新,最终只会被时代淘汰。

    二、强权之下,隐忧暗生——内腐是王朝崩塌的根源

    “强将手下无弱兵”,可强权之下,往往藏着最致命的隐忧。秦始皇一生雄才大略,威加海内,一手打造了大一统的大秦帝国,赵高作为他身边的近臣,始终表现得温顺恭敬、忠心耿耿,可秦始皇从未料到,自己这座“精神支柱”一旦崩塌,赵高心中压抑已久的狂妄、冒险与强权梦,便会彻底失去控制,从心底苏醒。

    始皇驾崩后,赵高联合李斯矫诏,赐死素有仁心、具备改革远见与能力的扶苏,诛杀名将蒙恬,彻底改写了大秦的命运。扶苏之死,不仅是一位贤能皇子的悲剧,更是大秦失去最后自救机会的开端——他本可以宽刑减赋、安抚天下,缓和秦朝的暴政危机,却因奸臣作乱而含冤而死。这再次印证了我心中的感悟:王朝的崩塌,从来不是源于外敌的进攻,而是始于内部的腐烂、人心的背叛与权力的失控。再强大的帝国,若内部蛀虫丛生、人心涣散,终究会走向覆灭。

    三、雄主迟暮,猜忌噬心——权力的反噬与人性的沉沦

    读《资治通鉴》,东吴孙权的一生,最让我唏嘘不已。他是三国称帝后最长寿的君主,也是一位极具强权的统治者。年轻时的孙权,18岁便接盘江东,内有世家大族掣肘,外有曹操、刘备两大强敌,却凭借隐忍、制衡与知人善任的本事,团结周瑜、鲁肃、吕蒙、陆逊四代大都督,于赤壁大败曹操,于夷陵重创刘备,一手将东吴打造成三足鼎立的一方势力,守住江东数十年安稳。

    可到了晚年,这位曾经的雄主,却被权力带来的不安全感彻底吞噬,猜忌之心日益深重。他怕太子压不住世家大族,怕权臣效仿司马懿篡权,怕自己死后江东不再姓孙,于是掀起“两宫之争”,逼死忠心耿耿的陆逊,屠戮皇子、清洗朝堂,将朝堂搅得鸡犬不宁。更令人痛心的是,他亲手杀死了自己的太子,导致太子的儿子孙皓从小颠沛流离,受尽人间疾苦,内心被恐惧与自卑彻底扭曲。

    当权力最终传到孙皓手中,这位在杀戮与动荡中长大的君主,便以极致的暴虐与荒唐填补内心的创伤,荒淫无道、滥杀无辜,将东吴推向了覆灭的深渊。孙权赢了一辈子对手,却输给了自己的猜忌;他守住了自己的江山,却亲手毁掉了子孙后代的未来,也埋下了东吴灭亡的祸根。这便是权力的反噬——上一代的权谋杀戮,会变成下一代的心理创伤;人性的沉沦,终将反噬整个国家。

    四、强者自负,微尘覆国——细节里藏着成败的密码

    历史还反复告诫我们:越是强者,越容易迷信自己的强大,从而忽略那些毫不起眼的风险,最终栽在自己最不屑一顾的细节上。这一点,无论是三国猛将张飞,还是《红楼梦》中的王熙凤,都用自己的悲剧给出了深刻的答案。

    张飞勇冠三军、万人难敌,是三国时期数一数二的猛将,可他却有一个致命的恶习——酒后性情暴虐,动辄鞭打手下士卒。在他眼中,这些无名小卒渺小如尘埃,翻不起什么风浪,可他万万没有想到,正是因为鞭打了两个不起眼的小卒,最终在睡梦中被这两个忍无可忍的士卒割去头颅,一世英名,落得个悲惨下场。他不是输在战场的刀光剑影,而是输在自己的性格缺陷,输在对微小风险的轻视,输在强者的自负与傲慢。

    《红楼梦》中的王熙凤,同样是一位“强者”。她精明强干、权势赫赫,依仗贾府的势力一手遮天、敛财弄权,眼中从来没有那些她看不起的“小人物”。可正是这些被她随意拿捏、当作棋子的小人物,最终将她拖入了万劫不复的深渊。尤二姐早年曾与破落户张华定亲,尤家收了银子私下退亲,张华毫不知情。王熙凤得知贾琏偷娶尤二姐后,为了报复、为了独断家事,主动找到穷困潦倒的张华,给了他银子,逼他去都察院告状,状告贾琏国孝家孝期间停妻再娶、强逼退亲。

    凤姐本想借这场官司大闹宁国府、逼死尤二姐,事后又想灭口除掉张华,万幸执行的旺儿心软,只谎称张华已死。可她从未放在眼里的张华,这个被她视为“癞狗”的小人物,最终却成了压垮她、也压垮贾府的关键一根稻草。后来贾府被抄家,张华告状、王熙凤弄权逼死人命的旧案被翻出,成为凤姐被休、贾府彻底覆灭的重要罪证。这便是细节的力量——让巨人倒下的,从来不是另一个巨人,而是鞋底的一粒沙;细节决定成败,微小的恶,终将酿成巨大的祸。

    五、不忘初心,方得始终——跳出历史轮回的根本之道

    老话说得好:“不忘初心,方得始终。”所谓初心,便是一个人、一个国家起航时,心中所抱定的愿景与信念。纵观中国历史,历代开国君主,在打天下时,大多心怀天下、体恤民间疾苦,深知百姓安居乐业才是国家长治久安的根基;可当王朝进入稳定期,他们的子孙后代,却往往站在祖宗的功劳簿上,迷失了祖宗的初心,被权力与欲望裹挟,疯狂、贪婪地压榨民众,最终导致民不聊生、天下分崩离析,陷入“其兴也勃焉,其亡也忽焉”的历史周期率。

    也正因为看透了这一点,孙中山先生终其一生,提出了“天下为公”的重要理念,试图打破“家天下”的魔咒,让权力真正属于人民;毛主席更是高瞻远瞩,点明了“为人民服务”的根本宗旨,守住了立国兴邦的初心,为跳出历史周期率指明了方向。这四个字与五个字,不仅是对历代王朝兴衰最深刻的总结,更是对“初心”二字最生动的诠释——唯有坚守初心、体恤民生,不贪腐、不内耗、不失控,才能跳出历史轮回,实现长久的安稳与发展。

    结语

    读史读到最后,读懂的从来不是冰冷的故事,而是人性的善恶、权力的边界、初心的珍贵,更是一条贯穿古今的真理:大国之亡,不在外,而在内;强者之败,不在天,而在己。

    优势不可恃,强权不可久,细节不可轻,人心不可欺,初心不可忘。一个国家,唯有坚守初心、自我革新、体恤民生,才能长治久安;一个人,唯有摒弃懈怠、保持谦逊、敬畏细节,才能行稳致远。能打败我们的,从来只有我们自己;能拯救我们的,也从来只有我们自己。这便是历史留给我们最深刻的警醒,也是我读史多年,最坚定的感悟。

  • 柏拉图与惠施:轴心时代的理性之异

    2026-3-17

    同世而生,异途而行;理性同源,文明殊归。

    公元前四世纪,是人类文明史上被称作“轴心时代”的光辉岁月。在山海阻隔、彼此不知的东西方,几乎同时诞生了两位气质惊人相近的智者:一位生于古希腊,名叫柏拉图;一位活跃于战国中原,名叫惠施。他们从未相遇,却在同一片星空下,以近乎一致的敏锐,叩问世界的本质。

    很多人初读柏拉图的《理想国》,会觉得他的诘问、辨析、反常识,与惠施为代表的名家极为相似,甚至都带着几分“诡辩”的味道。这种感觉并非错觉,而是东西方理性在同一时期、不约而同的觉醒。

    柏拉图(约公元前427—前347)是苏格拉底的学生,亚里士多德的老师,西方哲学的真正奠基者。他在《理想国》中以层层追问的辩证法,不断拆解“正义”“善”“美”的定义,认为感官世界流动虚妄,只有理念世界才是永恒、真实、完满的存在。他擅长怀疑,却志在建构;热爱辩论,却意在秩序。他终其一生,试图用理性为灵魂、为城邦、为文明建立一套稳固而崇高的体系。

    惠施(约公元前390—前317)是战国中期名家学派的代表人物,与庄子为至交,以善辩、博学、极富逻辑思辨闻名。他没有完整著作传世,仅在《庄子·天下》等文献中留下著名的历物十事

    至大无外,谓之大一;至小无内,谓之小一。

    无厚不可积也,其大千里。

    天与地卑,山与泽平。

    日方中方睨,物方生方死。

    大同而与小同异,此之谓小同异;万物毕同毕异,此之谓大同异。

    南方无穷而有穷。

    今日适越而昔来。

    连环可解也。

    我知天下之中央,燕之北、越之南是也。

    泛爱万物,天地一体也。

    这十句话,全是对日常经验的颠覆:无限与极小、无形与广大、高低与平等、变化与无常、同异与相对性、时空与中心……惠施以逻辑为刃,剖开常识,直指宇宙本质。在普通人眼中,他近于诡辩;在思想史上,他是中国早期理性精神的巅峰之一。

    把柏拉图与惠施放在一起比较,非但不牵强,反而极具洞察力。

    两人在时代、气质、方法上高度重合:

    • 生活年代高度重叠,同属轴心时代;
    • 都不信任感官经验,推崇理性与逻辑;
    • 都擅长反常识、破成见、做概念辨析;
    • 都触及本体、时空、共相、相对性等根本问题。

    我们甚至可以在思想上一一对应:

    至大无外、至小无内,对应柏拉图追求的至高、完满的理念;

    无厚而大千里,契合理念无形却高于现实的思考;

    天与地卑、山与泽平,共同否定感官世界的绝对尊卑;

    日方中方睨、物方生方死,一同看穿现象界的无常流变;

    大同异、小同异,与理念和个体的关系异曲同工;

    时空相对、连环可解、中央无定,都是以理性超越世俗视角;

    最终,惠施归于泛爱万物、天地一体,柏拉图走向理想城邦、灵魂正义。

    然而,两条如此接近的思想之路,却走向了截然不同的命运。

    柏拉图是建构者

    他有体系、有著作、有学园,有完整的哲学、政治、伦理蓝图。他的思想深刻塑造了西方的哲学、神学、逻辑、科学与政治传统。西方文明两千年,都在为他作注脚。

    惠施是解构者

    他锋利、通透、超前,擅长打破一切固着观念,却只破不立,没有提供一套可用于治国、安民、立身的现实方案。在礼崩乐坏、急需秩序与实用思想的战国,名家被视为“苛察缴绕、玩琦辞、无用害政”,不断被边缘化。

    真正决定二者命运的,不是智力高低,而是文明的选择

    中国文明走向了伦理、秩序、经世致用,儒家因其安定社会、安顿人心的力量,成为长久主流;

    西方文明走向了理性、逻辑、穷究真理,柏拉图一脉的思辨精神,一路生长出哲学与科学。

    惠施并不逊色于柏拉图,他只是生在了一个不需要纯逻辑的土地与时代。

    他是中国文明险些走向另一条道路的可能——一条更重分析、更重逻辑、更接近西方哲学传统的道路。

    同世而生,同样智慧;

    理性同源,却异途而行。

    柏拉图被文明高高举起,成为西方思想之父;

    惠施被历史轻轻放下,成为星空中一道孤寂而惊艳的光。

    他们曾在同一时代,遥遥相望,

    一样清醒,一样深邃,一样超越凡俗。

    只是一片土壤选择人间秩序,一片天空拥抱理性永恒。

    这不是思想的高下,

    只是文明,各自有其归途。

  • 天地为道,人心为光

    2026-3-17

    从古至今,人类始终在追问同一个问题:我们身处的世界,究竟以何种方式存在?哲学家们曾将思想划分为两端,一说世界本为物质,客观恒常,不以人心而动;一说世界由心而造,意识为尺,感知为界。这两种声音,看似对立,实则皆是人类望向宇宙时,不同角度的凝望。

    站在天地宇宙的宏大视角,世界是物质的,是客观存在的,它运行有序,生生不息,从不因人的意念而偏移分毫。日月轮转,四季更迭,山川静默,万物生长,这一切都遵循着自身的法则,独立而坚定,这便是世界最本真的模样。

    而落到每一个具体的人、每一个族群、每一片土地,我们对世界的认知,却从来不是单一的模样。历史的进程、文化的根脉、地理的滋养、岁月的沉淀,都在悄悄塑造着我们看待世界的眼光。认知在完善,情感在丰盈,意识在成长,人类所有的学说与思想,本质上都是为了更清晰地解释这片天地、这个宇宙,在不断靠近真相的路上,一步步完善自我。

    这份宇宙间恒常不变的规律,早在几千年之前,便被中国的先哲一语道破。老子言:道生一,一生二,二生三,三生万物。一个“道”字,道尽了天地的本源——它非神非鬼,非形非相,却是统摄万物的终极秩序,是宇宙运行的根本法则,无声无息,却无所不在。

    西方世界将这至高的规律拟人化,赋予其人格与形象,称之为上帝;东方佛家以圆满智慧称之,名之为佛。名称各异,形式有别,可它们指向的,从来都是同一个存在:那超越人类意志、统摄天地万物的终极之道。

    不必将它们割裂,更不必非此即彼。唯物与唯心,东方与西方,信仰与哲思,都不是彼此对立的两端,而是人类理解世界的不同路径。世界本是一个有机的整体,规律浑然一体,人心各有体悟,万千言说,最终都归于同一个天地,同一种大道。

    天地为道,静默运行;人心为光,次第照亮。世界客观而永恒,认知多元而成长,我们在客观的规律中立足,在主观的觉醒中前行,不执一端,不困于见,方得见天地之广,悟万物之和。

  • 中庸之道:人性阴阳的至善平衡

    2026-3-18

    人自动物进化而来,一身兼具理性之光与未褪尽的原始本能。善与恶从来不是对立的两端,而是一枚硬币不可分割的两面。善,是文明演进中生长出的理智、克制与共情;恶,是生存深处留存的欲望、趋利与自保。司马迁在《史记》中叹:天下熙熙,皆为利来;天下攘攘,皆为利往,一语道尽人性之本。无关切身利害时,人多能展露温和良善;一旦触及利益,本能便占据上风。故而人性本无绝对之善恶,唯有境遇之取舍。

    《易经》被誉为中国群经之首,它并非凭空出现,而是中华民族历经几十万年繁衍生息,将上古先民对天地、自然、人事的观察与智慧,系统凝结而成的经典,是我们古代、近代乃至现代文明思想与精神的真正源头与进化起点。其核心便是阴阳相生、变化不息的天地大道,后世道家的阴阳学说、儒家的中庸智慧,皆由此发源。一阴一阳之谓道,便是宇宙与人心最根本的运行法则。

    孟子言性善,看见人心向善的潜能;荀子论性恶,正视人欲天然的底色。一偏于阳,一偏于阴,看似对立,实则同归人性之本。由荀子之学衍生而出的法家,以制度约束欲望,助秦国横扫六合、一统天下,却因一味严刑峻法、纯阳无阴,刚猛过甚而失于柔缓,终至二世而亡。汉承秦制,先以黄老无为休养生息,再以儒法互济治理天下,刚柔相调、阴阳相生,方奠定数百年基业。

    世间大道,本在循环往复、阴阳相济。而我们中国儒家所讲的中庸之道——不偏不倚,过犹不及,和而不同——正是对人性善恶、阴阳两面最完美的诠释。中庸不是平庸,不是折中,而是在理性与本能之间、在善与恶之间、在宽与严之间、在柔与刚之间,找到最契合时势的平衡点。它承认人性的复杂,接纳欲望的存在,守护良知的微光,不极端、不偏执、不割裂。

    世间之人,亦依心量格局分为三境:以己心为心者,是为小人;兼顾己心,亦能体谅他人之心、顾念他人之利者,是为君子;心怀天下苍生、包容万物众生者,是为圣人。小人偏于一己之私,君子守于中庸之衡,圣人合于天地之道,这正是人性阴阳在不同境界上的体现。

    人心如此,治世如此,天地万物亦如此。阴阳旋转不息,善恶相依共存,唯有守中庸、持平衡、顺时势,方得长久,方得安稳,方得人道与天道合一。

  • 随笔——2014-03-29

    随笔——2014-03-29

    在这个光怪陆离的社会,没有谁可以将日子过得行云流水。但我始终相信,走过平湖烟雨,岁月山河,那些历尽劫数、尝遍百味的人,会更加生动而干净。时间永远是旁观者,所有的过程和结果,都需要我们自己承担。

  • 破镜而出,重塑自我

    王盟于2025年2月23日

    在电影《哪吒之魔童降世》里,哪吒因是魔丸转世,被世人视为不祥,周围满是恐惧与厌恶的目光,这些外界的偏见让他自认是个不受欢迎的坏小孩,这一情节生动展现了心理学上的“镜中我”效应。一个人的自我认知常是他人对自己看法的反映,但我们不能被这面“镜子”禁锢,而应该勇敢地打破它,重塑真实的自我。

    他人的评价如同一面镜子,我们在成长的过程中,会不自觉依据他人的反馈来认识自己,孩子渴望得到父母的夸赞,一旦被父母频繁批评,便容易陷入自我怀疑,觉得自己不够好;学生期待老师的认可,若长期被老师忽视或否定,自信就会被一点点消磨。在社交场合中,若总是遭受他人的排斥或贬低,内心也会逐渐认同那些负面评价,给自己贴上消极的标签。这种“镜中我”效应有着强大的影响力,它能塑造我们的性格,影响我们的行为,甚至于能够决定我们的人生走向。

    然而,这面“镜子”并非总是准确无误的,他人的评价往往受其自身经历、价值观、情绪以及当时的情境所左右,就像哪吒,人们只因为他魔丸的身份就对他充满偏见,全然不顾他内心的善良与渴望被接纳的心情。所以,一味地依赖他人的评价来构建自我认知,就如同在流沙上建楼,根基不稳,随时可能崩塌。

    要打破“镜中我”效应的束缚,我们需拥有坚定的自我内核。哪吒喊出:“我命由我不由天”,这不仅仅是一句口号,更是他对自我的强烈认同和对命运的抗争,他没有被外界的偏见打倒,而是努力去证明自已的善良与勇敢。我们也应如此,要深入了解自己的优点、缺点、兴趣和价值观,明确自己内心真正的追求,当我们对自己有了清晰且坚定的认知,就能在面对外界的质疑与否定时,保持清醒的头脑,不轻易动摇。

    同时,我们还要学会理性看待他人的评价,对于他人的建议,我们应真心倾听,有则改之,无则加勉;但对于那些无端的指责和恶意的诋毁,我们要有勇气过滤,不让它们侵蚀我们的心灵。

    “镜中我”效应如影随行,但我们有打破它的力量,让我们以坚定的自我为剑,以理性的态度为盾,冲破他人评价的桎梏,在人生的舞台上,绽放出属于自已的独特光芒。

  • 鲁智深与林冲随谈

    《水浒》读了不知多少遍了,影视作品也看了不少。在我的印象中总觉得林冲这个人物少了一点英豪气,有点优柔与软弱。也一直搞不明白为什么鲁智深与林冲一见就能亲得不得了,原来以为只是他们英雄惜英雄。前几天随手翻看消遣,看到了他们相识的情景,其中有一句话原来一直忽略了,而这句话让我想到了一些东西,让我想通了一些原来没有想明白的东西,我觉得对这两个人物是相当重要的。

    原书第七回,鲁智深正与那一般无赖演练武功时,林冲与他娘子上香不期而遇,林冲与鲁智深各自作了介绍,其中鲁智深说道:

    “洒家是关西鲁达的便是,只为杀的人多,情愿为僧,年幼时也曾到东京,认得令尊林提辖。”

    林冲正是听了这句话马上就性冲冲的马上与鲁智深结为兄弟。

    我想大多数人都可能不太在意这句对白,整本书中没有介绍过林冲父母的过多信息,只在这儿点出来了。从这句简单的对白中,我们可以推测出他们两人的幼年成长背景。

    鲁智深原来官阶为经略府提辖,“府”最起码大约相当于现在的地区级行政级别,提辖是负责军队事务的重要官员。鲁智深说他幼年时就到过东京,东京是首都,行政管辖是开封府,而那时林冲的老爸就是开封府的提辖,林冲出场时是东京八十万禁军枪棒教头,按道理级别是比他爸是更进了一层的。鲁智深能在幼年是见到林冲的老爸说时鲁智深的老爸肯定在地方上也是武官,不然不会到东京公干,不到东京公干当然也就鲁智深不会见到林冲的老爸。林冲的老爸应该已经不在人间了,所以林冲听到鲁智深早年就认识他爸,当然会对他生出更亲的情感。

    基于正常的人情世故,从上面的分析我们可以想象一下,林冲生长在宋朝首都的一个中层武官世家,从小接受的教育肯定是如何在体制内生存及发展的,正因为如此才造就了他的性格,没有这些性格特征他们家是没有办法在那个环境中生存与进步的。只是后来碰到时了一个不按套路出牌的暴发户,逼得他避无所避才雪夜上的梁山,但他内心应该是一直回想东京的幸福生活的。

    鲁智深的老爸是地方上的一个武将,我想肯定也是大大咧咧,对于鲁智深的教育也是比较随性的,因此鲁智深这个人物是最有佛性与佛心的人物,一切随着本性,没有那么势利,疾恶如仇。

  • openEuler2309中通过docker-compose部署Anaconda3且运行jupyter notebook服务

    openEuler是国内基于Linux内核比较成熟完善的国产操作系统。Anaconda3是一个集合了python语言及其各项科学计算、人工智能开发的完整开发平台,而jupyter notebook是anaconda3下非常好用的一款多用途开发调试平台。

    docker工具是业界最通用的容器工具,而docker-composse是docker官方提供的自动化容器管理与使用工具,可以让我们方便的管理使用容器技术。

    假设我们的openEuler已安装完毕,网络已调试完成,且可以连接互联网。

    1、安装docker

    yum install docker

    在上面的命令执行完成后docker应该就下载安装好了。

    2、检查docker是否安装成功

    docker  --version

    执行这个命令系统会显示安装好的docker的版本。我的电脑显示为:

    3、让docker服务开机自启动

    systemctl enable docker   
    systemctl start docker

    运行完这两个命令docker服务就加入了系统自启动列表,且我们已启动了docker服务。我们可以通过下面的命令检查docker服务运行状态:

    systemctl status docker

    在我的电脑上运行结果如下:

    出现上面的提示表示docker服务已正常。

    4、更改docker访问仓库

    因为国内政策原因,docker默认的存储库因内已访问不正常,需要修改docker配置,将存储库改为国内的镜像仓库。

    在/etc/doker目录下创建一个daemon.json文件,文件内容如下:

    {  
      "registry-mirrors": ["https://docker.m.daocloud.io"] 
    }  
    

    5、安装docker-compose工具

    yum install docker-compose

    安装完成后可以输入下面的命令确认工具是否安装成功:

    docker-compose --version

    正常情况下电脑会显示如下:

    6、建立anaconda-jupyter系统文件夹。

    我将anaconda-jupyter相关配置文件及数据文件夹放在/home/wcs/目录下。

    mkdir /home/wcs/anaconda-jupyter
    

    7、建立docker-compose.yml文件

    进入/home/wcs/anaconda-pupyter文件夹,在此目录下建立docker-compose.yml文件,文件内容如下:

    version: '3.3'
    
    services:
      jupyter:
        image: continuumio/anaconda3:latest  # Anaconda3基础镜像
        container_name: anaconda_jupyter
        ports:
          - "8888:8888"                       # 映射端口
        volumes:
          - ./notebooks:/home/jovyan/work    # 持久化数据
        environment:
          JUPYTER_TOKEN: "your_token"    # 可选,设置访问令牌
          
        command: >
          /bin/bash -c "source activate root &&
          /opt/conda/bin/jupyter-notebook
          --ip=0.0.0.0 --allow-root --no-browser --NotebookApp.token='${JUPYTER_TOKEN:-}'   --notebook-dir=/home/jovyan/work"
        restart: unless-stopped

    8、利用docker-compose命令启动容器

    docker-compose命令启动时会从当前目录下读取docker-compse.yml配置从而启动相对应的容器,因此我们需要先进入我们的/home/wcs/anaconda-pupyter目录。

    cd /home/wcs/anaconda-pupyter
    docker-compose up -d

    执行完上面的命令后,docker会下载对应的容器映像,待下载完成后就会正确运行此容器。

    9、查看运行的容器

    docker ps

    系统显示如下:

    当系统显示上述信息时,anaconda3和jupyter notebook服务已正常运行了,它工作端口为8888,但此时还无法从别的电脑上访问这个服务,因为系统防火墙未开放相关的端口。

    10、从防火墙开启tcp/8888端口

    firewall-cmd  --permanent --zone=public --add-port=8888/tcp

    执行完这个命令后,我们从其它电脑上即可以访问这个服务器上的jupyter notebook服务了。

    在浏览器中输入相对应的网址http://192.168.0.19:8888/即可访问了。

    11、为jupyter notebook访问服务加上密码,保证系统安全性。

    在上面的jupyter中我们执行下面的python代码生成一个密码。

    from notebook.auth import passwd  
    print(passwd('your_password'))

    执行这个python代码显示如下:

    上面生成的一串argon2的加密字符串即是您设定密码”your_password”的加密码。将这串字符复制出来。

    在我们前面的docker-compose.yml文件夹中创建一个.env的环境变量设定文件(注意文件名前面的“.”)。文件内容如下:

    JUPYTER_PASSWORD=argon2:$argon2id$v=19$m=10240,t=10,p=8$2c/omfN42cqdjIHwCeJHPg$ccMenyCzQPuqGlgqKwSaVYlBE5Cp0zbygvs47t/osbE

    你可能会说环境变量设定不是一般都是在yml的environment:这个小节么?是的,一般情况是这样,但是我们的加密码字符串中有类似于”$”这样的yaml特珠字符串,会造成yml文件解析错误,所以才要加入.env这个外置环境变量设置文件。这个问题也让我困扰了很久。

    12、关闭现在的容器,修改docker-compose.yml,加入jupyter的访问密码。

    docker-compose down
    

    修改docker-compose.yml,修改后的文件内容如下:

    version: '3.3'
    
    services:
      jupyter:
        image: continuumio/anaconda3:latest  # Anaconda3基础镜像
        container_name: anaconda_jupyter
        ports:
          - "8888:8888"                       # 映射端口
        volumes:
          - ./notebooks:/home/jovyan/work    # 持久化数据
        environment:
          JUPYTER_TOKEN: "js12345678"    # 可选,设置访问令牌
          JUPYTER_PASSWORD: ${JUPYTER_PASSWORD}   #可选,读取.env文件中的JUPYTER_PASSWORD环境变量
    
        command: >
          /bin/bash -c "source activate root &&
          /opt/conda/bin/jupyter-notebook
          --ip=0.0.0.0 --allow-root --no-browser --NotebookApp.token='${JUPYTER_TOKEN:-}'  --NotebookApp.password='${JUPYTER_PASSWORD}' --notebook-dir=/home/jovyan/work"
        restart: unless-stopped
    

    再次启动容器后,再访问这个网址后就需要用密码才能正确访问了。

    docker-compose up -d

    访问时需要密码:

    13、将此容器设定为一个系统服务,随系统开关机可以自动启动。

    在/home/wcs/anaconda-jupyter/文件夹下建立一个anaconda-jupyter.service文件

    文件内容如下:

    [Unit]  
    Description=Docker Compose anaconda-jupyter  
    After=docker.service  
    Requires=docker.service  
    
    [Service]  
    Restart=always  
    WorkingDirectory=/home/wcs/anaconda-jupyter/
    ExecStart=/usr/bin/docker-compose up  
    ExecStop=/usr/bin/docker-compose down  
    
    [Install]  
    WantedBy=multi-user.target
    

    文件建立好后,执行下面的操作:

    cp /home/wcs/anaconda-jupyter/anaconda-jupyter.service /usr/lib/systemd/system
    systemctl enable anaconda-jupyter.service

    这样即完成了全部的安装。