Docker使用

 

Docker使用

 

3.5 Docker镜像使用

可以使用 docker images 来列出本地主机上的镜像

 

 

 

各个选项说明:

l REPOSITORY:表示镜像的仓库源

l TAG:镜像的标签

l IMAGE ID:镜像ID

l CREATED:镜像创建时间

l SIZE:镜像大小

 

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本

当我们在本地主机上使用一个不存在的镜像时,Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。

如: 下载mysql,使用docker pull mysql命令。

 

 

 

 

 

 

可以使用 docker search 命令来搜索镜像。

如使用docker search mysql来查找MySQL镜像。

 

 

 

l NAME: 镜像仓库源的名称

l DESCRIPTION: 镜像的描述

l OFFICIAL: 是否 docker 官方发布

l stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。

l AUTOMATED: 自动构建。

镜像删除使用 docker rmi 命令,比如删除MySQL镜像:

 

 

 

 

通过Docker看板(Dashboard)删除image镜像

 

 

 

 

3.6 Docker容器使用

1启动容器

以下命令使用nginx镜像启动一个容器,参数为以命令行模式进入该容器:

docker run --name webserver -p 81:80 -d nginx

参数说明:

l --name webserver:容器名称。

l -p 81:80: 端口进行映射,将本地 8端口映射到容器内部的 80 端口。

l -d nginx: 设置容器在在后台一直运行。

 

 

 

 

 

最后我们可以通过浏览器可以直接访问 81 端口的 nginx 服务:

 

 

 

 

 

使用下面命令查看容器:

docker ps

 

 

 

 

也可以通过Docker看板(Dashboard)来查看:

 

 

 

2)停止容器

使用下面命令可以停止容器:

docker stop webserver

 

 

 

看板显示如下:

 

 

 

 

也可以通过看板来启动容器

 

 

 

 

 

 

 

 

 

 

 

2)删除容器

使用下面命令可以删除容器:

docker rm webserver

 

 

 

 

也可以通过看板启动,停止,删除容器。

 

 

 

 

3.8 Docker镜像的导入、导出

docker 提供把镜像导出export(保存save)为文件的机制,这样就可以把镜像copy到任意地方了。

  1. 列出镜像

docker images

 

 

 

2.导出镜像

docker save -o <保存路径> <镜像名称:标签>

执行下面命令:

docker save -o  ./webapi4.tar webapi4

如把webapi4 导出到当前文件夹,

 

 

 

 

 

 

 

3.导入镜像

使用load命令导入。

docker load --input ./webapi4.tar

删除镜像webapi4,导入镜像。

 

 

 

 

 

 

 

 

 

3.9 Docker容器的导入、导出

Linux容器下

使用export导出容器,导出容器命令格式:

docker export <容器名> > <保存路径>

 

如果导出容器正在运行的webapi5容器,先停止,再导出。命令如下:

docker stop  WebApi5

docker export WebApi5 > ./WebApi5.tar

1.导入容器

导入容器的命令:

docker import <文件路径>  <容器名>

把当前文件夹下的WebApi5.tar文件拷贝到其他机上,在机器机上运行:

docker import ./WebApi5.tar WebApi5

 

再启动此容器即可。

 

Windows容器下

 

停止容器也可以不停止,只要下一步commit成功即可

将容器commit为镜像

 docker commit WebApi5 webapi5image

 

 

 

 

 

 

 

再把镜像导出,导入,启动容器即可。

建议

可以依据具体使用场景来选择命令

若是只想备份images,使用saveload即可

若是在启动容器后,容器内容有变化,需要备份,则使用exportimport

 

 

 

3.10 使用BAT自动导出,导入

 

cd C:\Users\15481\source\vuedocker\danjian

docker commit WebApi5 webapi5image

docker save -o  ./webapi5.tar webapi5image

docker stop WebApi5

docker rm WebApi5

docker load --input ./webapi5.tar

docker run --name WebApi5 -p 83:80 -d webapi5image

 

 

Docker-compose 主要基础命令:

  build              生成或重建服务
  bundle             从Compose文件生成Docker bundle
  config             验证并查看撰写文件
  create             创建服务
  down               停止并删除容器、网络、镜像和卷
  events             从容器接收实时事件
  exec               在正在运行的容器中执行命令
  help               获取命令帮助
  images             显示镜像列表
  kill               杀死容器
  logs               查看容器的输出
  pause              暂停服务
  port               打印端口绑定的公共端口
  ps                 显示容器列表
  pull               拉取服务镜像
  push               推送服务镜像
  restart            重新启动服务
  rm                 移除停止的容器
  run                运行一次性命令
  scale              设置服务的容器数
  start              启动服务
  stop               暂停服务
  top                显示正在运行的进程
  unpause            取消暂停服务
  up                 创建并启动容器
  version            显示Docker-Compose版本信息
 

 

参考:

@echo off:: dotnet 发布目录

set publishDir=E:\TEMP\abc\

set codeDir=D:\Source\Webapi

set hostname=root@0.0.0.0

set port=111111
:: linux 服务器上的目录

set projDir=/abc/core

set container=abccore

set image=core_abc:latest

set ymlfile=/abc/core/docker-compose.stage.yml

 

cd /d %codeDir%

dotnet publish -c Release -o %publishDir%if %errorlevel% == 0 (

    pscp -P %port% -r %publishDir% %hostname%:%projDir%

    if %errorlevel% == 0 (

        ssh -p %port% %hostname% "docker stop %container%"

        if %errorlevel% == 0 (

            ssh -p %port% %hostname% "docker rm %container%"

            if %errorlevel% == 0 (

                ssh -p %port% %hostname% "docker rmi %image%"

                if %errorlevel% == 0 (

                    ssh -p %port% %hostname% "docker-compose -f %ymlfile% up -d"

                    if %errorlevel% == 0 (

                       ssh -p %port% %hostname% "rm -rf %projDir%/*"

                    )

                )

            )

        ) else (

            ssh -p %port% %hostname% "docker-compose -f %ymlfile% up -d"

            if %errorlevel% == 0 (

               ssh -p %port% %hostname% "rm -rf %projDir%/*"

            )

        )

    ) else (

        echo upload-error

    )

) else (

    echo publish-error

)

pause>nul

 

 

参考:

https://www.cnblogs.com/guardwhy/p/14906562.html

 

posted @ 2022-04-20 13:52  春光牛牛  阅读(67)  评论(0编辑  收藏  举报