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:\Windows\system32> 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:\Windows\system32> 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:\Windows\system32> docker container run -d -p 90:80 nginx
93cd8214cd9d9d62146dd37fcab94112482fa4c561c245f024d312e4909bc7d8
exec是执行的意思,-it交互模式 , sh交互的方式,用shell脚本进行交互
PS C:\Windows\system32> 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:\Windows\system32> 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:\Windows\system32> d:
PS D:\> mkdir test


    目录: D:\


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2021/8/13      7:38                test


PS D:\>  cd test
PS D:\test> docker image save webdockerpublish:dev -o zkbwebdockerpublish.image
PS D:\test>

导入镜像:load -i
 docker image load -i  D:\test\zkbwebdockerpublish.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:\Users\bob_zhu\AppData\Local\Temp\ad792db87eaa4bda9dd75538ddc37ca3\config.json

已将诊断日志写入以下位置:
“C:\Users\bob_zhu\AppData\Local\Temp\tmpF90F.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

 

posted @ 2021-09-25 16:44  ProZkb  阅读(68)  评论(0编辑  收藏  举报