zoukankan      html  css  js  c++  java
  • .net core微服务

    <!doctype html>
    <html>
    <head>
    <meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
    <title>.Net Core微服务入门全纪录(一)——项目搭建</title><link href='https://fonts.loli.net/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext' rel='stylesheet' type='text/css' /><style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color:#ffffff; --text-color:#333333; --select-text-bg-color:#B5D6FC; --select-text-font-color:auto; --monospace:"Lucida Console",Consolas,"Courier",monospace; }
    html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
    body { margin: 0px; padding: 0px; height: auto; bottom: 0px; top: 0px; left: 0px; right: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; tab-size: 4; }
    iframe { margin: auto; }
    a.url { word-break: break-all; }
    a:active, a:hover { outline: 0px; }
    .in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
    #write { margin: 0px auto; height: auto; inherit; word-break: normal; overflow-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 40px; }
    #write.first-line-indent p { text-indent: 2em; }
    #write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; }
    #write.first-line-indent li { margin-left: 2em; }
    .for-image #write { padding-left: 8px; padding-right: 8px; }
    body.typora-export { padding-left: 30px; padding-right: 30px; }
    .typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; }
    .typora-export .task-list-item input { pointer-events: none; }
    @media screen and (max- 500px) {
    body.typora-export { padding-left: 0px; padding-right: 0px; }
    #write { padding-left: 20px; padding-right: 20px; }
    .CodeMirror-sizer { margin-left: 0px !important; }
    .CodeMirror-gutters { display: none !important; }
    }
    #write li > figure:last-child { margin-bottom: 0.5rem; }
    #write ol, #write ul { position: relative; }
    img { max- 100%; vertical-align: middle; image-orientation: from-image; }
    button, input, select, textarea { color: inherit; font: inherit; }
    input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
    *, ::after, ::before { box-sizing: border-box; }
    #write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { inherit; }
    #write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
    p { line-height: inherit; }
    h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 4; }
    p { orphans: 4; }
    h1 { font-size: 2rem; }
    h2 { font-size: 1.8rem; }
    h3 { font-size: 1.6rem; }
    h4 { font-size: 1.4rem; }
    h5 { font-size: 1.2rem; }
    h6 { font-size: 1rem; }
    .md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; }
    .hidden { display: none; }
    .md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
    a { cursor: pointer; }
    sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
    sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
    #write input[type="checkbox"] { cursor: pointer; inherit; height: inherit; }
    figure { overflow-x: auto; margin: 1.2em 0px; max- calc(100% + 16px); padding: 0px; }
    figure > table { margin: 0px; }
    tr { break-inside: avoid; break-after: auto; }
    thead { display: table-header-group; }
    table { border-collapse: collapse; border-spacing: 0px; 100%; overflow: auto; break-inside: auto; text-align: left; }
    table.md-table td { min- 32px; }
    .CodeMirror-gutters { border-right: 0px; background-color: inherit; }
    .CodeMirror-linenumber { user-select: none; }
    .CodeMirror { text-align: left; }
    .CodeMirror-placeholder { opacity: 0.3; }
    .CodeMirror pre { padding: 0px 4px; }
    .CodeMirror-lines { padding: 0px; }
    div.hr:focus { cursor: none; }
    #write pre { white-space: pre-wrap; }
    #write.fences-no-line-wrapping pre { white-space: pre; }
    #write pre.ty-contain-cm { white-space: normal; }
    .CodeMirror-gutters { margin-right: 4px; }
    .md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important; }
    .md-diagram-panel { 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
    #write .md-fences.mock-cm { white-space: pre-wrap; }
    .md-fences.md-fences-with-lineno { padding-left: 0px; }
    #write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; }
    .md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; }
    .CodeMirror-line, twitterwidget { break-inside: avoid; }
    .footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
    .footnotes + .footnotes { margin-top: 0px; }
    .md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; text-shadow: none; float: none; position: static; auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; }
    li div { padding-top: 0px; }
    blockquote { margin: 1rem 0px; }
    li .mathjax-block, li p { margin: 0.5rem 0px; }
    li { margin: 0px; position: relative; }
    blockquote > :last-child { margin-bottom: 0px; }
    blockquote > :first-child, li > :first-child { margin-top: 0px; }
    .footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
    #write .footnote-line { white-space: pre-wrap; }
    @media print {
    body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; font-variant-ligatures: no-common-ligatures; }
    #write { margin-top: 0px; padding-top: 0px; border-color: transparent !important; }
    .typora-export * { -webkit-print-color-adjust: exact; }
    html.blink-to-pdf { font-size: 13px; }
    .typora-export #write { break-after: avoid; }
    .typora-export #write::after { height: 0px; }
    .is-mac table { break-inside: avoid; }
    }
    .footnote-line { margin-top: 0.714em; font-size: 0.7em; }
    a img, img a { cursor: pointer; }
    pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; }
    p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; }
    #write.first-line-indent p > .md-image:only-child:not(.md-img-error) img { left: -2em; position: relative; }
    p > .md-image:only-child { display: inline-block; 100%; }
    #write .MathJax_Display { margin: 0.8em 0px 0px; }
    .md-math-block { 100%; }
    .md-math-block:not(:empty)::after { display: none; }
    [contenteditable="true"]:active, [contenteditable="true"]:focus, [contenteditable="false"]:active, [contenteditable="false"]:focus { outline: 0px; box-shadow: none; }
    .md-task-list-item { position: relative; list-style-type: none; }
    .task-list-item.md-task-list-item { padding-left: 0px; }
    .md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; }
    .math { font-size: 1rem; }
    .md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
    .md-toc-content { position: relative; margin-left: 0px; }
    .md-toc-content::after, .md-toc::after { display: none; }
    .md-toc-item { display: block; color: rgb(65, 131, 196); }
    .md-toc-item a { text-decoration: none; }
    .md-toc-inner:hover { text-decoration: underline; }
    .md-toc-inner { display: inline-block; cursor: pointer; }
    .md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
    .md-toc-h2 .md-toc-inner { margin-left: 2em; }
    .md-toc-h3 .md-toc-inner { margin-left: 4em; }
    .md-toc-h4 .md-toc-inner { margin-left: 6em; }
    .md-toc-h5 .md-toc-inner { margin-left: 8em; }
    .md-toc-h6 .md-toc-inner { margin-left: 10em; }
    @media screen and (max- 48em) {
    .md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
    .md-toc-h4 .md-toc-inner { margin-left: 5em; }
    .md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
    .md-toc-h6 .md-toc-inner { margin-left: 8em; }
    }
    a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
    .footnote-line a:not(.reversefootnote) { color: inherit; }
    .md-attr { display: none; }
    .md-fn-count::after { content: "."; }
    code, pre, samp, tt { font-family: var(--monospace); }
    kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; }
    .md-comment { color: rgb(162, 127, 3); opacity: 0.8; font-family: var(--monospace); }
    code { text-align: left; vertical-align: initial; }
    a.md-print-anchor { white-space: pre !important; border- initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important; text-shadow: initial !important; }
    .md-inline-math .MathJax_SVG .noError { display: none !important; }
    .html-for-mac .inline-math-svg .MathJax_SVG { vertical-align: 0.2px; }
    .md-math-block .MathJax_SVG_Display { text-align: center; margin: 0px; position: relative; text-indent: 0px; max- none; max-height: none; min-height: 0px; min- 100%; auto; overflow-y: hidden; display: block !important; }
    .MathJax_SVG_Display, .md-inline-math .MathJax_SVG_Display { auto; margin: inherit; display: inline-block !important; }
    .MathJax_SVG .MJX-monospace { font-family: var(--monospace); }
    .MathJax_SVG .MJX-sans-serif { font-family: sans-serif; }
    .MathJax_SVG { display: inline; font-style: normal; font-weight: 400; line-height: normal; zoom: 90%; text-indent: 0px; text-align: left; text-transform: none; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; white-space: nowrap; float: none; direction: ltr; max- none; max-height: none; min- 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; }
    .MathJax_SVG * { transition: none 0s ease 0s; }
    .MathJax_SVG_Display svg { vertical-align: middle !important; margin-bottom: 0px !important; margin-top: 0px !important; }
    .os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
    .md-diagram-panel > svg { max- 100%; }
    [lang="flow"] svg, [lang="mermaid"] svg { max- 100%; height: auto; }
    [lang="mermaid"] .node text { font-size: 1rem; }
    table tr th { border-bottom: 0px; }
    video { max- 100%; display: block; margin: 0px auto; }
    iframe { max- 100%; 100%; border: none; }
    .highlight td, .highlight tr { border: 0px; }
    svg[id^="mermaidChart"] { line-height: 1em; }
    mark { background: rgb(255, 255, 0); color: rgb(0, 0, 0); }
    .md-html-inline .md-plain, .md-html-inline strong, mark .md-inline-math, mark strong { color: inherit; }
    mark .md-meta { color: rgb(0, 0, 0); opacity: 0.3 !important; }
    @media print {
    .typora-export h1, .typora-export h2, .typora-export h3, .typora-export h4, .typora-export h5, .typora-export h6 { break-inside: avoid; }
    }


    :root {
    --side-bar-bg-color: #fafafa;
    --control-text-color: #777;
    }

    @include-when-export url(https://fonts.loli.net/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext);

    /* open-sans-regular - latin-ext_latin */
    /* open-sans-italic - latin-ext_latin */
    /* open-sans-700 - latin-ext_latin */
    /* open-sans-700italic - latin-ext_latin */
    html {
    font-size: 16px;
    }

    body {
    font-family: "Open Sans","Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
    color: rgb(51, 51, 51);
    line-height: 1.6;
    }

    #write {
    max- 860px;
    margin: 0 auto;
    padding: 30px;
    padding-bottom: 100px;
    }

    @media only screen and (min- 1400px) {
    #write {
    max- 1024px;
    }
    }

    @media only screen and (min- 1800px) {
    #write {
    max- 1200px;
    }
    }

    #write > ul:first-child,
    #write > ol:first-child{
    margin-top: 30px;
    }

    a {
    color: #4183C4;
    }
    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
    position: relative;
    margin-top: 1rem;
    margin-bottom: 1rem;
    font-weight: bold;
    line-height: 1.4;
    cursor: text;
    }
    h1:hover a.anchor,
    h2:hover a.anchor,
    h3:hover a.anchor,
    h4:hover a.anchor,
    h5:hover a.anchor,
    h6:hover a.anchor {
    text-decoration: none;
    }
    h1 tt,
    h1 code {
    font-size: inherit;
    }
    h2 tt,
    h2 code {
    font-size: inherit;
    }
    h3 tt,
    h3 code {
    font-size: inherit;
    }
    h4 tt,
    h4 code {
    font-size: inherit;
    }
    h5 tt,
    h5 code {
    font-size: inherit;
    }
    h6 tt,
    h6 code {
    font-size: inherit;
    }
    h1 {
    font-size: 2.25em;
    line-height: 1.2;
    border-bottom: 1px solid #eee;
    }
    h2 {
    font-size: 1.75em;
    line-height: 1.225;
    border-bottom: 1px solid #eee;
    }

    /*@media print {
    .typora-export h1,
    .typora-export h2 {
    border-bottom: none;
    padding-bottom: initial;
    }

    .typora-export h1::after,
    .typora-export h2::after {
    content: "";
    display: block;
    height: 100px;
    margin-top: -96px;
    border-top: 1px solid #eee;
    }
    }*/

    h3 {
    font-size: 1.5em;
    line-height: 1.43;
    }
    h4 {
    font-size: 1.25em;
    }
    h5 {
    font-size: 1em;
    }
    h6 {
    font-size: 1em;
    color: #777;
    }
    p,
    blockquote,
    ul,
    ol,
    dl,
    table{
    margin: 0.8em 0;
    }
    li>ol,
    li>ul {
    margin: 0 0;
    }
    hr {
    height: 2px;
    padding: 0;
    margin: 16px 0;
    background-color: #e7e7e7;
    border: 0 none;
    overflow: hidden;
    box-sizing: content-box;
    }

    li p.first {
    display: inline-block;
    }
    ul,
    ol {
    padding-left: 30px;
    }
    ul:first-child,
    ol:first-child {
    margin-top: 0;
    }
    ul:last-child,
    ol:last-child {
    margin-bottom: 0;
    }
    blockquote {
    border-left: 4px solid #dfe2e5;
    padding: 0 15px;
    color: #777777;
    }
    blockquote blockquote {
    padding-right: 0;
    }
    table {
    padding: 0;
    word-break: initial;
    }
    table tr {
    border-top: 1px solid #dfe2e5;
    margin: 0;
    padding: 0;
    }
    table tr:nth-child(2n),
    thead {
    background-color: #f8f8f8;
    }
    table tr th {
    font-weight: bold;
    border: 1px solid #dfe2e5;
    border-bottom: 0;
    margin: 0;
    padding: 6px 13px;
    }
    table tr td {
    border: 1px solid #dfe2e5;
    margin: 0;
    padding: 6px 13px;
    }
    table tr th:first-child,
    table tr td:first-child {
    margin-top: 0;
    }
    table tr th:last-child,
    table tr td:last-child {
    margin-bottom: 0;
    }

    .CodeMirror-lines {
    padding-left: 4px;
    }

    .code-tooltip {
    box-shadow: 0 1px 1px 0 rgba(0,28,36,.3);
    border-top: 1px solid #eef2f2;
    }

    .md-fences,
    code,
    tt {
    border: 1px solid #e7eaed;
    background-color: #f8f8f8;
    border-radius: 3px;
    padding: 0;
    padding: 2px 4px 0px 4px;
    font-size: 0.9em;
    }

    code {
    background-color: #f3f4f4;
    padding: 0 2px 0 2px;
    }

    .md-fences {
    margin-bottom: 15px;
    margin-top: 15px;
    padding-top: 8px;
    padding-bottom: 6px;
    }


    .md-task-list-item > input {
    margin-left: -1.3em;
    }

    @media print {
    html {
    font-size: 13px;
    }
    table,
    pre {
    page-break-inside: avoid;
    }
    pre {
    word-wrap: break-word;
    }
    }

    .md-fences {
    background-color: #f8f8f8;
    }
    #write pre.md-meta-block {
    padding: 1rem;
    font-size: 85%;
    line-height: 1.45;
    background-color: #f7f7f7;
    border: 0;
    border-radius: 3px;
    color: #777777;
    margin-top: 0 !important;
    }

    .mathjax-block>.code-tooltip {
    bottom: .375rem;
    }

    .md-mathjax-midline {
    background: #fafafa;
    }

    #write>h3.md-focus:before{
    left: -1.5625rem;
    top: .375rem;
    }
    #write>h4.md-focus:before{
    left: -1.5625rem;
    top: .285714286rem;
    }
    #write>h5.md-focus:before{
    left: -1.5625rem;
    top: .285714286rem;
    }
    #write>h6.md-focus:before{
    left: -1.5625rem;
    top: .285714286rem;
    }
    .md-image>.md-meta {
    /*border: 1px solid #ddd;*/
    border-radius: 3px;
    padding: 2px 0px 0px 4px;
    font-size: 0.9em;
    color: inherit;
    }

    .md-tag {
    color: #a7a7a7;
    opacity: 1;
    }

    .md-toc {
    margin-top:20px;
    padding-bottom:20px;
    }

    .sidebar-tabs {
    border-bottom: none;
    }

    #typora-quick-open {
    border: 1px solid #ddd;
    background-color: #f8f8f8;
    }

    #typora-quick-open-item {
    background-color: #FAFAFA;
    border-color: #FEFEFE #e5e5e5 #e5e5e5 #eee;
    border-style: solid;
    border- 1px;
    }

    /** focus mode */
    .on-focus-mode blockquote {
    border-left-color: rgba(85, 85, 85, 0.12);
    }

    header, .context-menu, .megamenu-content, footer{
    font-family: "Segoe UI", "Arial", sans-serif;
    }

    .file-node-content:hover .file-node-icon,
    .file-node-content:hover .file-node-open-state{
    visibility: visible;
    }

    .mac-seamless-mode #typora-sidebar {
    background-color: #fafafa;
    background-color: var(--side-bar-bg-color);
    }

    .md-lang {
    color: #b4654d;
    }

    .html-for-mac .context-menu {
    --item-hover-bg-color: #E6F0FE;
    }

    #md-notification .btn {
    border: 0;
    }

    .dropdown-menu .divider {
    border-color: #e5e5e5;
    }

    .ty-preferences .window-content {
    background-color: #fafafa;
    }

    .ty-preferences .nav-group-item.active {
    color: white;
    background: #999;
    }


    </style>
    </head>
    <body class='typora-export os-windows'>
    <div id='write' class=''><h1><a name="net-core微服务入门全纪录一)------项目搭建httpswwwcnblogscomxhznlp13071260html" class="md-header-anchor"></a><a href='https://www.cnblogs.com/xhznl/p/13071260.html'><span>.Net Core微服务入门全纪录(一)——项目搭建</span></a></h1><p><span>Tips:本篇已加入</span><a href='https://www.cnblogs.com/xhznl/p/13259036.html'><span>系列文章阅读目录</span></a><span>,可点击查看更多相关文章。</span></p><h1><a name="前言" class="md-header-anchor"></a><span>前言</span></h1><p><span>写这篇博客主要目的是记录一下自己的学习过程,只能是简单入门级别的,因为水平有限就写到哪算哪吧,写的不对之处欢迎指正。</span>
    <span>代码放在:</span><a href='https://github.com/xiajingren/NetCoreMicroserviceDemo' target='_blank' class='url'>https://github.com/xiajingren/NetCoreMicroserviceDemo</a></p><h1><a name="什么是微服务" class="md-header-anchor"></a><span>什么是微服务?</span></h1><p><span>关于微服务的概念解释网上有很多...</span>
    <span>个人理解,微服务是一种系统架构模式,它和语言无关,和框架无关,和工具无关,和服务器环境无关...</span>
    <span>微服务思想是将传统的单体系统按照业务拆分成多个职责单一、且可独立运行的接口服务。至于服务如何拆分,没有明确的定义。</span>
    <span>几乎任何后端语言都能做微服务开发。</span>
    <span>微服务也并不是完美无缺的,微服务架构会带来更多的问题,增加系统的复杂度,引入更多的技术栈..</span></p><p><span>关于微服务的概念解释网上有很多...</span>
    <span>个人理解,微服务是一种系统架构模式,它和语言无关,和框架无关,和工具无关,和服务器环境无关...</span>
    <span>微服务思想是将传统的单体系统按照业务拆分成多个职责单一、且可独立运行的接口服务。至于服务如何拆分,没有明确的定义。</span>
    <span>几乎任何后端语言都能做微服务开发。</span>
    <span>微服务也并不是完美无缺的,微服务架构会带来更多的问题,增加系统的复杂度,引入更多的技术栈..</span></p><p><img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200610192945580-2076034628.png" referrerpolicy="no-referrer"></p><p><span>一个客户端,一个产品服务,一个订单服务。3个项目都是asp.net core web应用程序。创建项目的时候记得启用一下Docker支持,或者后面添加也行。</span></p><p><span>为产品、订单服务添加一些基础代码,就简单的返回一下 服务名称,当前时间,服务的ip、端口。</span></p><p><img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200610193747469-82298951.png" referrerpolicy="no-referrer"></p><p><img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200610193823797-616818977.png" referrerpolicy="no-referrer"></p><h1><a name="在docker中运行服务" class="md-header-anchor"></a><span>在Docker中运行服务</span></h1><p><span>为了方便,我使用Docker来运行服务,不用Docker也行,关于docker的安装及基本使用就不介绍了。</span></p><ul><li><span>build镜像:</span></li></ul><p><span>在项目根目录打开PowerShell窗口执行:</span><code>docker build -t productapi -f ./Product.API/Dockerfile .</code></p><p><img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200610195822281-1017385594.png" referrerpolicy="no-referrer"></p><p><img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200610195900044-1677580339.png" referrerpolicy="no-referrer"></p><p><span>Successfully代表build成功了。</span></p><p><span>执行:</span><code>docker run -d -p 9050:80 --name productservice productapi</code></p><p><img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200610200637039-238683468.png" referrerpolicy="no-referrer"></p><p><span>执行:</span><code>docker ps</code><span>查看运行的容器</span></p><p><img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200610200822095-1488681309.png" referrerpolicy="no-referrer"></p><p><span>没问题,使用浏览器访问一下接口:</span></p><p><img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200610201058997-1287537831.png" referrerpolicy="no-referrer"></p><p><span>也没问题,其中的ip端口是Docker容器内部的ip端口,所以端口是80,这个无所谓。</span></p><ul><li><span>产品服务部署好了,下面部署一下订单服务,也是同样的流程,就把指令简单贴一下吧:</span></li></ul><p><span>build镜像:</span><code>docker build -t orderapi -f ./Order.API/Dockerfile .</code>
    <span>运行容器:</span><code>docker run -d -p 9060:80 --name orderservice orderapi</code>
    <span>浏览器访问一下:</span></p></div>
    </body>
    </html>

  • 相关阅读:
    北京燃气IC卡充值笔记
    随机分析、随机控制等科目在量化投资、计算金融方向有哪些应用?
    量化交易平台大全
    Doctor of Philosophy in Computational and Mathematical Engineering
    Institute for Computational and Mathematical Engineering
    Requirements for the Master of Science in Computational and Mathematical Engineering
    MSc in Mathematical and Computational Finance
    万字长文:详解多智能体强化学习的基础和应用
    数据处理思想和程序架构: 使用Mbedtls包中的SSL,和服务器进行网络加密通信
    31-STM32+W5500+AIR202/302基本控制篇-功能优化-W5500移植mbedtls库以SSL方式连接MQTT服务器(单向忽略认证)
  • 原文地址:https://www.cnblogs.com/yjm8023/p/13684381.html
Copyright © 2011-2022 走看看