<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之旅 廣告
                - [PWD play with docker](https://labs.play-with-docker.com/) - [the docker book](https://dockerbook.com/) - [Docker精華學習資料集錦](https://yq.aliyun.com/articles/65145) - [希云CSphere培訓視頻](https://csphere.cn/training) - [docker 快速入門](https://yuansir-web.com/2016/06/14/docker-kuai-su-ru-men-zhi-yin/) - [laradock](https://github.com/laradock/laradock): 參考 docker-compose 的使用 - 社區: [dockone](http://dockone.io/) --- - [docker從入門到實踐(docker practice)](http://docker_practice.gitee.io/) [docker技術入門與實戰ed2](http://product.china-pub.com/5089907) - [第一本docker書](https://book.douban.com/subject/26285268/) - [docker容器與容器云ed2](http://www.ituring.com.cn/book/1899) [浙大SEL實驗室](http://www.sel.zju.edu.cn/) - docker全攻略: 簡介 基礎(安裝 基本命令 Dockerfile) 進階(運行剖析 內核講解 資源調度) 生態 案例(Amazon CoreOS) - 高性能docker: 準備docker宿主機 優化docker鏡像 用chef自動化部署docker 監控docker宿主機和容器(監控+日志) 性能基準測試(JMeter) 負載均衡(nginx 水平擴展) 容器故障檢測和排除 應用到生產環境(web運維) - 自己動手寫docker: LinuxNamespace LinuxCgroups LinuxUnionFS 構造簡單容器 ![docker architecture](http://qiniu.daydaygo.top/docker_architecture.png) ![docker command](https://docker_practice.gitee.io/appendix/_images/cmd_logic.png) ## 基礎 - 終于解決了困擾很久的問題:docker 中 `symlink error`;解決方法:使用管理員運行 `docker-machine start`(docker tooolbox 時代在win10下遇到的問題) - Docker Registry: 代入 git registry 來理解會更好一點 - 安全 - API ```json // cat ~/.docker/daemon.json { "debug" : true, "experimental" : true, "registry-mirrors" : [ // 鏡像加速 "https://sdl0y1oj.mirror.aliyuncs.com", "https://registry.docker-cn.com" ], "dns": [ // 全局設置 dns "223.5.5.5", "223.6.6.6" ] } ``` - [私有倉庫 - 官方 registry 鏡像](https://docs.docker.com/registry/) 基礎鏡像: - 小鏡像: alpine/scratch/busybox 分階段build run指令串聯 - java spring-boot: openjdk:8-jdk-alpine, openjdk:8-jre-alpine - java tomcat: tomcat:8.5-alpine - php-fpm: nginx+php-fpm服務編排; 基于php-fpm+apk; [安全使用apk安裝](https://hub.docker.com/r/trafex/alpine-nginx-php7/) - go: 參考Dockerfile的分階段build ## docker - docker安裝/加速/鏡像倉庫/自動構建: [aliyun - docker 免費容器鏡像服務](https://cr.console.aliyun.com/cn-zhangjiakou/mirrors) - [騰訊云容器服務](https://console.cloud.tencent.com/tencenthub) - [中科大 - 鏡像源](http://mirrors.ustc.edu.cn/) - [清華 - 鏡像源](https://mirror.tuna.tsinghua.edu.cn/) ```bash docker system df docker system prune # -a, 沒有容器使用的docker鏡像和容器 docker info # registry, 格式(user)/(repo_name) docker search/history/push (image-name) # image docker pull imgage:tag # 下載鏡像 docker images -a # 查看 images # -f --filter, -q, --digests docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" # go 模板格式語法 docker tag <image> <tag> docker push <tag name> docker rmi $(docker images -f "dangling=true" -q) # 先 stop、rm 容器,再刪除名稱為 none 的鏡像 # container docker commit container-id image:tag # build image from container; 不推薦,推薦使用 Dockerfile docker ps -a # 查看所有容器, 默認只顯示正在運行的容器 docker rm `docker ps -a -q` # 刪除所有容器 docker run -ti --rm --name <container-name> image:tag /bin/bash # -d daemon; 查看鏡像內容, 方便寫 Dockerfile -e XXX=xx docker run --name xxx-app -d -p 8080:80 xxx # 創建容器, 綁定端口 docker start/stop/restart/rm/attach/logs/kill <container> docker top docker exec docker cp <contaner> <local> docker inspect # 查看容器詳情 docker ps | awk '{print $1}' | xargs docker stop # 批量操作 docker volume ls docker volume inspect my-vol docker stack # 編排能力: route docker secret # 優雅實現安全編排 ``` ## Dockerfile `docker build . -t tag -f Dockerfile` - . 當前context, **注意**會將當前context下的所有內容都發送到 docker daemon, 建議建子文件夾 - -t image:tag - -f 默認讀取 context 下的 Dockerfile, 文件名不同需要 -f 指定 ```Dockerfile # 格式 INSTRUCTION argument # 明確指定 image:tag, 避免基礎鏡像更新導致重新構建 FROM php:7.2.5-cli-alpine3.7 LABEL maintainer="1252409767@qq.com" # 設置中文源加速 RUN echo -e "http://mirrors.ustc.edu.cn/alpine/v3.7/main\nhttp://mirrors.ustc.edu.cn/alpine/v3.7/community" > /etc/apk/repositories && \ apk update # 設置時區 RUN apk add tzdata && \ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone # 支持正則 go-filepath.Match: https://golang.org/pkg/path/filepath/#Match COPY src dst # 更高級復制: url 壓縮文件解壓 ADD src dst # string => sh -c $cmd; array => $cmd CMD /bin/echo CMD ["/bin/echo"] # 1. 鏡像作為命令使用 2. 鏡像啟動前的準備工作 ENTRYPOINT # 暴露端口 EXPOSE 80:8080 EXPOSE 80 # 影響其他命令使用相對路徑 RUN / CMD / ENTRYPOINT / COPY WORKDIR /path/to/workdir ENV <key> <value> ARG <key> <value> # 切換用戶執行, 使用 gosu 替換 su/sudo USER <uid> # 掛載, 數據持久化 VOLUME ["/data"] # 觸發器, 基于當前鏡像構建鏡像時, 觸發器的內容才會執行 ONBUILD COPY . /app # 健康檢查 HEALTHCHECK # 分階段build FROM golang:alpine AS build-env WORKDIR /app ADD . /app RUN cd /app && go build -o goapp FROM alpine RUN apk update && \ apk add ca-certificates && \ update-ca-certificates && \ rm -rf /var/cache/apk/* WORKDIR /app COPY --from=build-env /app/goapp /app/ EXPOSE 8080 ENTRYPOINT ./goapp ``` ## docker-compose - docker-compose 命令行 ``` # install sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # alias: 設置別名, 方便使用 alias doc docker-compose doc up -d <service> -f <yml file> doc ps/rm/stop/restart doc scale xxx=3 ``` - docker-compose.yml ```yaml version: '3.1' # 語法版本 services: # 定義服務 service-name: image: image:tag # 明確指定鏡像版本 labels: # 配置路由服務; 基于nginx負載均衡; 基于api服務發現 aliyun.routing.port_8080: 'http://tomcat-sample' aliyun.scale: '3' build: dir build: context: dir # context, 上下文 dockerfile: Dockerfile args: # 替換Dockerfile中的 ARG 參數 arg1:val1 command: ["cmd"] # 用來覆蓋缺省命令/添加參數 environment: # 字典/數組 格式 env: val links: - service-name ports: - "local:container" volumes: - local:container - ./xxx.conf:/etc/xxx.conf # 掛載配置文件 # https://docs.docker.com/docker-for-mac/osxfs-caching/ - local:container:default # delegated cached consistent volumes_from: - volume-name extra_hosts: # /etc/hosts - "host:ip" net: "bridge" # 網絡模式: bridge none container:name host dns: 8.8.8.8 dns: - 8.8.8.8 tty: true # 打開此配置才可以 exec 進入容器 # 其他配置參考 docker run 命令參數 db: # 使用阿里云RDS external: host: rds******.mysql.rds.aliyuncs.com ports: - 3306 environment: - MYSQL_DATABASE=blog - MYSQL_USER=ghost - MYSQL_PASSWORD=*********** ``` ## k8s
                  <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>

                              哎呀哎呀视频在线观看