zoukankan      html  css  js  c++  java
  • Docker學習

    在运行 sudo docker ps -a时出现
    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
    service docker start
     
    1.安裝docker, docker compose , dotnet-sdk-5.0
    sudo yum install dotnet-sdk-5.0
    離綫安裝
    lscpu查看architecture,下載對應的linux二進制文件
    tar -vxf dotnet-sdk-5.0.208-linux-x64.tar.gz
    如果出現下面的錯誤,需要安裝libicu
    [centos@centos7 home]$ dotnet --info
    Process terminated. Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.
    sudo yum install libicu
     
    2.在apptst  publish的package目錄下新建Dockerfile
    #引入镜像,低版本 docker 去掉  AS base
    #换成别人做的阿里镜像
    #FROM registry.cn-hangzhou.aliyuncs.com/newbe36524
    FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
    ENV ASPNETCORE_ENVIRONMENT=QA #配置工作目录 相当于cd WORKDIR /app EXPOSE 80 EXPOSE 443 #暴露容器端口,此端口与程序运行路径一致,可 #EXPOSE 44362 #复制文件到工作目录 COPY . . #ENV :配置系统环境变量,比如程序环境环境等在这里配置(开发、预发、线上环境) #这里是配置程序运行端口,如果程序不使用默认的80端口这里一定要设置(程序运行端口) #ENV ASPNETCORE_URLS http://+:44362 #设置时间为中国上海,默认为UTC时间 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone #启动程序 ENTRYPOINT ["dotnet", "AppTST.HttpApi.Host.dll"]

      

     
    3.Build一個新的image,交互方式運行
    docker build -t apitest:v1 -f /usr/app/apitest/Dockerfile .
    docker run -it apitest:v1
    本地8080映射到容器的 80 端口,以分离(后台)模式运行容器
    docker run -d -p 8080:80 --name apitest apitest:v1
     
    4.执行inspect命令,最後一行會有IP地址
    分別用host ip和container ip來測試是否正常啓動
    curl "http://172.17.0.3/health-status"
    curl "http://192.168.0.109:8080/health-status"

    [centos@centos7 ~]$ docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    f66386afcf87 apitest:v1 "dotnet AppTST.HttpA…" 4 minutes ago Up 4 minutes 80/tcp, 443/tcp quirky_turing
    [centos@centos7 ~]$ docker inspect f66386afcf87
    查看container運行的存儲位置
    [centos@centos7 ~]$ docker inspect d94bc009ffc3 | grep UpperDir
    "UpperDir": "/var/lib/docker/overlay2/f65955ab192027248565efcde485c430cb1821a6ba9ed4ed592a
    那麽app運行的log位置如下
    /var/lib/docker/overlay2/e7772a88904580a8fc192a850e2003beeeaac9fd67935fc07539bc30624ffefe/diff/app/Logs/
     
    5.其它
    docker export 命令根据容器 ID 将镜像导出成一个文件
    docker export f299f501774c > hangger_server.tar
    使用 docker import 命令则可将这个镜像文件导入进来
    docker import - new_hangger_server < hangger_server.tar
    可以同时将多个 image 打包成一个文件,比如下面将镜像库中的 postgres 和 mongo 打包
    docker save -o images.tar postgres:9.6 mongo:3.4
    将这个镜像文件载入进来
    docker load < hangge_server.tar
    特别注意:两种方法不可混用。
    如果使用 import 导入 save 产生的文件,虽然导入不提示错误,但是启动容器时会提示失败,会出现类似"docker: Error response from daemon: Container command not found or does not exist"的错误。
     
    查看访问记录
    docker logs f66386afcf87
    列出容器的端口映射或特定映射
    docker port ad824fda6722
    显示镜像每层的变更内容
    docker history apitest:v1 --no-trunc
    本地镜像的磁盘使用情况
    docker system df
     
     
    docker ps -a
    docker stop 75ccf0e70cae
    docker exec -it 059a62ed7eca /bin/bash
    docker cp 059a62ed7eca:/app/logs/serilog-PatronExperience-20211014.log /tmp/log.log
     
    docker stats
    docker info
    docker container ls
    docker inspect mulesoftapi_exp-api_1 | grep log
    "LogPath": "/var/lib/docker/containers/059a62ed7eca924af6dcdb42a99d2cc53dc08cdce50929490aa427f8836bb72c/059a62ed7eca924af6dcdb42a99d2cc53dc08cdce50929490aa427f8836bb72c-json.log",
    docker inspect redemptionsystem_drs-external-api_1 | grep log
    "LogPath": "/var/lib/docker/containers/3a1d2f424bce9ef00ff44382b0050e8615ca6867fb21bb3533e4d5b8e2be4f77/3a1d2f424bce9ef00ff44382b0050e8615ca6867fb21bb3533e4d5b8e2be4f77-json.log",
     

  • 相关阅读:
    估算并发用户数公式,性能测试估算
    jmeter 环境部署、数据库设置、分布式设置、多网卡配置等随笔
    JMETER 不同线程组 变量值 的参数传递
    sar命令性能分析
    系统性能分析思路
    数据库基本操作Day1
    装饰器

    复杂的用户行为逻辑
    运行逻辑
  • 原文地址:https://www.cnblogs.com/sui84/p/15456594.html
Copyright © 2011-2022 走看看