<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 1、基礎概念 ## ①Docker鏡像 Docker 鏡像是一個特殊的文件系統,除了提供容器所需的程序、庫、資源、配置等文件外,還包含了一些能為運行時準備的一些配置參數(匿名卷、環境變量、用戶等)。 鏡像不包含任何動態數據,其內容在構建之后不會被改變。 ## ②Docker容器 Docker 容器是一個在運行的Docker鏡像的實例(instance)。包括服務或應用的狀態和其他動態的數據。 ## ③鏡像和容器小結: 可以理解為:鏡像是一個類,容器是類的一個實例。容器是一個動態的。 ## ④Dockerfile 注意:創建文件,文件名必須是 Dockerfile Dockerfile是一個構建自定義鏡像的文件。通過docker build構建鏡像,通過docker run 啟動鏡像,Launch啟動鏡像, 就變成了container # 2、docker中部署golang工程 ## ① 首先創建一個工程ondocker ![](https://img.kancloud.cn/3e/da/3eda34e87f7c02ef4cc0093574b7a902_1030x519.png) ② 創建server.go文件,文件中的代碼如下: ``` package main import ( "fmt" "html" "log" "net/http" ) func main() { fmt.Println("lanaching server at port 8001") http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) { fmt.Fprintf(writer,"hello,%q",html.EscapeString(request.URL.Path)) }) log.Fatal(http.ListenAndServe(":8001",nil)) } ``` ## ③ 創建Dockerfile文件,配置代碼如下: ``` FROM golang:1.17.1-alpine # 創建文件夾 RUN mkdir /app # 設置工作目錄 WORKDIR /app #將Dockerfile 中的文件存儲到/app下 ADD . /app # 因為已經是在 /app下了,所以使用 ./ RUN go build -o main ./server.go # 暴露的端口 EXPOSE 8001 #設置容器的啟動命令,CMD是設置容器的啟動指令 CMD /app/main ``` ## ④構建鏡像,docker build . 別忘記加 . 代表當前目錄 ![](https://img.kancloud.cn/38/0b/380bc0d9eb40b6aec3b12ae6ff937713_1358x427.png) ![](https://img.kancloud.cn/6d/e4/6de428b90d2e607c1c4aa44c68a47a85_1391x470.png) ``` 完整執行是這樣的: docker build . -t myimage ``` ![](https://img.kancloud.cn/1c/3f/1c3f5421c8ecba57e7b0c14a0c7ea159_1272x563.png) ``` 查看鏡像:docker ps -a 或者docker image ls ``` ![](https://img.kancloud.cn/1a/d7/1ad74fe147423902830e870cacac5596_1200x290.png) ``` 啟動鏡像,啟動后該鏡像變成容器:docker run -d -p 8001:8001 myimage 查看啟動的容器:docker ps 或者 docker container ls ``` ![](https://img.kancloud.cn/30/bc/30bcf0a79d286aea990b4f63cc186720_1466x146.png) ``` 然后訪問:http://localhost:8001/world ``` ![](https://img.kancloud.cn/e8/e4/e8e4f2998b8bd84d4d6cfec351a71d52_483x156.png) OK,部署成功! 還有一個知識點: Docker Compose是幫助你自動 build和launch的過程 下次總結下!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看