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
    人各有命,上天注定,有人天生为王,有人落草为寇。脚下的路,如果不是你自己的选择,那么旅程的终点在哪,也没人知道。你会走到哪,会遇到谁,都不一定。
  • 相关阅读:
    366. Find Leaves of Binary Tree输出层数相同的叶子节点
    716. Max Stack实现一个最大stack
    515. Find Largest Value in Each Tree Row查找一行中的最大值
    364. Nested List Weight Sum II 大小反向的括号加权求和
    156. Binary Tree Upside Down反转二叉树
    698. Partition to K Equal Sum Subsets 数组分成和相同的k组
    244. Shortest Word Distance II 实现数组中的最短距离单词
    187. Repeated DNA Sequences重复的DNA子串序列
    java之hibernate之基于主键的双向一对一关联映射
    java之hibernate之基于主键的单向一对一关联映射
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/15334764.html
Copyright © 2011-2022 走看看