zoukankan      html  css  js  c++  java
  • Docker笔记3

    开启虚拟化Hyper V
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -ALL
    
    
    镜像是只读的。容器是读写
    容器=镜像+读写层
    docker hub   一个docker的社区
    
    创建一个容器:
    docker container run nginx   nginx是镜像名字,这个容器里面是'nginx'
    
    docker container run ubuntu
    
    查看我们的容器里的镜像
    docker container ls (注意:这个只是罗列出已经开启的镜像,并不会罗列所有的镜像)
     docker container ps -a  (可以罗列所有的)
    
    CONTAINER ID   IMAGE           COMMAND                  CREATED              STATUS              PORTS     NAMES
    17f03113bf98   nginx:latest    "/docker-entrypoint.…"   About a minute ago   Up About a minute   80/tcp    wonderful_aryabhata
    0428ab45c62f   ubuntu:latest   "bash"                   7 minutes ago        Up 7 minutes                  sweet_kilby
    
    要暂停某个镜像:
     docker container stop 17  (stop后面可以加ID,也可以加名字,虽然ID有点长,但是一般加前两个数字就够了)
    启动某个镜像:
    docker container run nginx:latest
    删除镜像
    docker container rm 17
    显示所有的ID
    docker container ps -aq
    暂停所有的镜像:
    docker container stop $(docker container ps -aq)
    删除所有容器:
    docker container rm $(docker container ps -aq)
    
    注意:正在运行的container 直接rm 是会报错的。
    PS C:Windowssystem32> docker container ls
    CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
    55b0ae6402bb   nginx     "/docker-entrypoint.…"   42 seconds ago   Up 41 seconds   80/tcp    wonderful_gates
    PS C:Windowssystem32> docker container rm 55
    Error response from daemon: You cannot remove a running container 55b0ae6402bb0e63b3c94ca6d18b7f4b72aa6cbdc2ebec46e9c028df6256ee43. Stop the container before attempting removal or force remove
    但是也是可以强制删除:
    docker container rm 55 -f
    
    先删除所有的容器:
    docker container rm -f $(docker container ls -aq)
    
    给容器绑定端口:前台运行模式(attached)(当把powershell 关闭了,在浏览器中就链接不到服务了)
    docker container run -p 90:80 nginx    90是host 80是container
    http://127.0.0.1:90/
    
    给容器绑定端口:后台运行模式(当把powershell 关闭了,在浏览器中刷新还可以链接到服务)
    docker container run -d -p 90:80 nginx
    http://127.0.0.1:90/  
    把后台模式改为前台模式:一个显著的特点就是(前台模式刷新会有日志.后台模式刷新没有日志)
    docker attach 2af(ID)
    
    映射一个detached模式的端口
    docker container run -d -p 90:80 nginx
    94a29f3b8a49a74e5ce6759cacb96b7f345f1e6b47a0b5f20c1a0a0225ee59f4
    但是是不显示日志:
    那么怎么才能在detached模式下显示日志呢:
    docker container logs -f 94a
    这样我们再去浏览器刷新 后台就有logs 记录了
    ctrl+c 就推出logs的跟踪
    
    docker的交互模式:
    使用Ubuntu镜像并开启交互模式
    docker container run -it ubuntu sh
    -it代表启用交互模式,sh代表可以使用Shell脚本。当你输入玩这个脚本后,Docker就会进入到交互模式。可以使用ls来得到目录下的文件,也可以使用hostname来查看计算机名称。
    这时候你想退出容器和交互模式可以输入exit命令。需要重点说明的是,随着命令退出后,容器也会跟着退出,变成Exited模式。
    
    然后再用detached模式创建一个nginx镜像的容器
    开启一个detached模式的端口:
    PS C:Windowssystem32> docker container run -d -p 90:80 nginx
    93cd8214cd9d9d62146dd37fcab94112482fa4c561c245f024d312e4909bc7d8
    exec是执行的意思,-it交互模式 , sh交互的方式,用shell脚本进行交互
    PS C:Windowssystem32> docker exec -it 93cd sh
    # ls
    bin  boot  dev  docker-entrypoint.d  docker-entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    # hostname
    93cd8214cd9d
    #
    
    
    pull from registry(https://hub.docker.com/)
    dockerfile online
    自有文件导入
    
    查看所有的镜像: docker image ls
    查看某个镜像的信息: docker image inspect baf
    删除镜像: docker image rm baf5
    
    导出自己的镜像:
    PS C:Windowssystem32> docker image ls
    REPOSITORY                             TAG       IMAGE ID       CREATED          SIZE
    webdockerpublish                       latest    4846890ab9f1   17 minutes ago   212MB
    webdockerpublish                       dev       58df3b85377a   38 minutes ago   208MB
    ubuntu                                 latest    1318b700e415   2 weeks ago      72.8MB
    nginx                                  latest    08b152afcfae   3 weeks ago      133MB
    quay.io/presslabs/wordpress-operator   latest    1eb192deaf67   17 months ago    45.5MB
    PS C:Windowssystem32> d:
    PS D:> mkdir test
    
    
        目录: D:
    
    
    Mode                 LastWriteTime         Length Name
    ----                 -------------         ------ ----
    d-----         2021/8/13      7:38                test
    
    
    PS D:>  cd test
    PS D:	est> docker image save webdockerpublish:dev -o zkbwebdockerpublish.image
    PS D:	est>
    
    导入镜像:load -i
     docker image load -i  D:	estzkbwebdockerpublish.image
    
    https://registry.hub.docker.com/prozkb
    
    
    
    发布遇到错误。
    运行 docker.exe tag 命令失败。
    
    Current context "desktop-linux" is not found on the file system, please check your config file at C:Usersob_zhuAppDataLocalTempad792db87eaa4bda9dd75538ddc37ca3config.json
    
    已将诊断日志写入以下位置:
    “C:Usersob_zhuAppDataLocalTemp	mpF90F.tmp”。 
    
    
    
    <myrepo>.azurecr.io
    
    <prozkbrepo>.azurecr.io
    prozkbrepo.azurecr.io
    1:进入发布文件目录
         cd D:dockerpublish
    2:
    PS D:dockerpublish> ls
    
    
        目录: D:dockerpublish
    
    
    Mode                 LastWriteTime         Length Name
    ----                 -------------         ------ ----
    d-----         2021/8/15      9:46                wwwroot
    -a----         2021/8/15      9:30            162 appsettings.Development.json
    -a----         2021/8/15      9:30            192 appsettings.json
    -a----         2021/8/15      9:35            133 Dockerfile
    -a----         2021/8/15      9:46         106806 dockertest.deps.json
    -a----         2021/8/15      9:45           8704 dockertest.dll
    -a----         2021/8/15      9:45         174592 dockertest.exe
    -a----         2021/8/15      9:45          19928 dockertest.pdb
    -a----         2021/8/15      9:46            311 dockertest.runtimeconfig.json
    -a----         2021/8/15      9:46          36352 dockertest.Views.dll
    -a----         2021/8/15      9:46          21388 dockertest.Views.pdb
    -a----         2021/8/15      9:46            554 web.config
    
    3:开始build
    PS D:dockerpublish> docker build -t mydockerdemo .
    
    4:docker images
    REPOSITORY                             TAG       IMAGE ID       CREATED              SIZE
    mydockerdemo                           latest    fee3c515c175   About a minute ago   212MB
    5:
    docker run -d mydockerdemo -p 9999:80 mydockerdemo
    791a32b801af058741e1cc986b6996a8f5c9320fbb82ff8c6bcf2b5475672ff5
    
    -d:后台模式运行;
    
    --name:给运行中的容器指定一个名字;
    
    -p:指定端口映射, 主机的端口9999映射到容器的端80,因为在容器里面我们的项目是以80 端口启动的;
    
    最后一个参数是上一步生成的镜像名称, 即根据此镜像启动一个容器实例。
    
    
    
    6:docker container run mydockerdemo
      It was not possible to find any installed .NET Core SDKs
      Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
          https://aka.ms/dotnet-download
    人各有命,上天注定,有人天生为王,有人落草为寇。脚下的路,如果不是你自己的选择,那么旅程的终点在哪,也没人知道。你会走到哪,会遇到谁,都不一定。
  • 相关阅读:
    LTE-TDD随机接入过程(3)-RAR(MSG2)以及MSG1的重传
    《javascript设计模式》读书笔记一(接口)
    数据结构——算法之(033)(两个有序单链表合并为一个有序的单链表)
    利用redis和php-resque实现后台任务
    最能毁掉程序猿健康的几件事
    springMVC4(11)使用注解完毕数据格式化
    Linux
    Linux
    Linux
    Fluent_Python_Part4面向对象,11-iface-abc,协议(接口),抽象基类
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/15334764.html
Copyright © 2011-2022 走看看