• Docker笔记


    Docker 命令 

    Docker 在 centos 7上升级  http://blog.rcant.com/2017/05/22/docker/docker-centos-up/

    docker --version 查看版本

    systemctl start docker 启动Docker

    docker pull redis 下载镜像 docker pull  获取镜像

    docker images 找到所有本地镜像

    docker ps 查看运行的容器

    docker ps -a 查看全部运行记录

    docker logs mysql 查看日志

    docker run -d -p 8001:80 --name redis01 redis:latest      启动一个redis 名字叫redis01   -it进去容器里面 docker restart命令重启容器

    (-p 物理机的端口8001:映射到容器端口,-d 不会堵塞当前线程) Ctrl+P+Q进行退出容器  exit退出即关闭      docker attach 2904cd0f70e6进去容器

    docker start mysql 启动容器镜像

    docker stop mysql 关闭容器镜像

    docker rm mysql 删除容器

    docker build [options] <path|URL>

    Dockerfile

       FROM|
    
      COPY/ADD|
    
      RUN/CMD|
    
      ENTRYPOINT|
    
      ENV|
    
      EXPOSE|
    
      WORKDIR

    microsoft/dotnet

    microsoft/dotnet:sdk

    microsoft/dotnet:<version>-runtime

    例如 1

    From scratch  用到空白镜像

    FROM microsoft/dotnet
    
    WORKDIR /app
    
    COPY . /app
    
    CMD ["dotnet","run"]
    
    docker build -t anker/console:dev .

    例如2 

    FROM microsoft/dotnet:sdk AS build-env
    WORKDIR /code
    
    COPY *.csproj /code
    RUN dotnet restore
    
    COPY . /code
    RUN dotnet publish -c Release -o out
    
    FROM microsoft/dotnet:runtime
    
    WORKDIR /app
    COPY --from=build-env /code/out /app
    
    ENTRYPOINT ["dotnet", "MyHtml.dll"]
    docker build -t anker/console:dev .

     例如3 打包程序

    FROM microsoft/aspnetcore-build AS build-env
    WORKDIR /code
    COPY *.csproj ./
    RUN dotnet restore
    COPY . ./
    RUN dotnet publish -c Release -o out

    FROM microsoft/aspnetcore
    WORKDIR /app
    COPY --from=build-env /code/out ./

    EXPOSE 8000
    ENTRYPOINT ["dotnet","WebApiMysql.dll"]

    docker build -t anker/console:dev .

     -v /etc/localtime:/etc/localtime:ro 同步时间

    数据卷

    docker run -d -p 5000:5000 --name html02 -v=/docker/myhtml/wwwroot:/app/wwwroot -v=/docker/myhtml/appsettings.json:/app/appsettings.json   myhtml:dev 

    docker run --name show08 -d -p 80:5000 -v=/docker/show/wwwroot:/app/wwwroot -v /etc/localtime:/etc/localtime:ro

    link 容器互联

    docker run -d -p 8002:08 --name aspnetcore --link mysql01:db   -v /etc/localtime:/etc/localtime:ro  anker/console:prod

    link Network 互联两种方式(Bridge,Overlay(集群))

    docker network create -d bridge mybridge  创建network

    docker network ls //查看network

    使用 docker run -d -p 8002:80 --net mybridge  --name aspnetcore anker/console:prod

    docker  inspect aspnetcore 查看所有配置信息  会产生新的网管

    docker network connect mybridge  mysql01  //然后mysql01 多加一个网关地址,全部在mybridge  在asonetcore 可以ping通mysql01

    docker rename mysql01 db  //可以修改名字

    Docker-compose

    version: '3'
    
    services:
        db:
            image: mysql/mysql-server
            command: mysql --character-set-server=utf8 --collation-server==utf8_geneal_ci
            restart: always
            ports:
                - '3306:3306'
            environment:
                MYSQL_ROOT_PASSWORD: sa123456
                MYSQL_USER: anker
                MYSQL_PASSWORD: sa123456
            volumes:
                - /d/docker/beta/mysql-init:/docker-entrypoint-initdb.d
        web:
            build: .
            container_name: 'aspnetcore'
            ports:
                - '8003:80'
            depends_on:
                - db
    

    /mysql-init/init.sql   "GRANT ALL PRIVILEGES NO *.* TO 'anker'@'%' WITH GRANT OPTION;"

      docker-compose build  构建容器  docker-compose up启动 docker-compose down 回滚操作 

    Redis Desktop Manager Redis客户端

    Robomongo mongo客户端

    https://hub.docker.com/  国内镜像

    阿里云镜像 https://dev.aliyun.com/search.html

    https://docs.docker-cn.com/   官方中文文档

    Docker中文文档 https://yeasy.gitbooks.io/docker_practice/content/

    可是当你敲apt-get install vim命令时,提示:

            Reading package lists... Done
            Building dependency tree       
            Reading state information... Done
            E: Unable to locate package vim

            这时候需要敲:apt-get update,这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。

            等更新完毕以后再敲命令:apt-get install vim命令即可。

    netstat -aon 查看本地所有使用的端口

    netstat -aon|findstr "8001" 查看指定端口

     mkdir 创建文件夹 touch 创建文件

    sudo systemctl start nginx   重启

    docker  inspect mysql01 查看所有配置信息

    删除所有无名称镜像:

    docker image prune -a -f "dangling=true"

    ASP.NET Core 生成图片问题

    大家应该知道目前.NET Core(2.0)还是没有System.Drawing程序集,如果我们要使用Image等对象来完成生成图片验证码、图片二维码等操作只有通过第三方编写的组件,ZKWeb.System.Drawing便是其中一个,我们使用它以后,我们在windows上运行良好,无需其他额外的操作。但是我们一到Linux运行或者使用Docker(dotnet镜像使用的是ubantu环境)运行时,会发现程序无法正常生成图片,会出现异常,这是因为我们的zk在Linux/Docker下运行需要安装一个名为 libgdiplus 的组件,我们在构建Docker镜像的时候可以通过RUN命令使用apt-get命令进行安装:

    RUN apt-get update
    RUN apt-get install libgdiplus --assume-yes
    RUN cd /usr/lib
    RUN ln -s libgdiplus.so gdiplus.dll
  • 相关阅读:
    Spring Cloud Stream 使用延迟消息实现定时任务(RabbitMQ)
    rocketmq发送消息的三种方式
    windows下RocketMQ安装部署
    idea多设备自动同步配置
    idea复制springboot的maven项目后,修改了maven名称,但maven工具里的maven名称没改变,不生效
    SpringBoot图文教程16—SpringBoot 多模块开发「web」「打包」
    spring-boot-starter-parent的作用
    JDK8 从永久代到元空间
    Spring 生命周期
    mesos Failed to connect to
  • 原文地址:https://www.cnblogs.com/AnkerZhang/p/8466927.html
Copyright © 2020-2023  润新知