Docker

223 阅读17分钟

Docker教程 (yiibai.com)
Introduction · 深入浅出Docker (qicoder.com)
Docker run reference | Docker Documentation

镜像

image 管理镜像

Commands:
  build       Build an image from a Dockerfile
  history     Show the history of an image
  import      Import the contents from a tarball to create a filesystem image
  inspect     Display detailed information on one or more images
  load        Load an image from a tar archive or STDIN
  ls          List images
  prune       Remove unused images
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rm          Remove one or more images
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

DockerFile

Docker Dockerfile | 菜鸟教程 (runoob.com)

build 使用 Dockerfile 创建镜像

docker build [OPTIONS] PATH | URL | -
-t  镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
--network  默认 default。在构建期间设置RUN指令的网络模式
--rm  设置镜像成功后删除中间容器;
--build-arg=[]  设置镜像创建时的变量;
-f  指定要使用的Dockerfile路径;
--label=[] * 设置镜像使用的元数据;
-m  设置内存最大值;
--pull  尝试去更新镜像的新版本;
-q  安静模式,成功后只输出镜像 ID;
--disable-content-trust  忽略校验,默认开启;
--squash  将 Dockerfile 中所有的操作压缩为一层。

tag 为指定镜像添加标签

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

push 将本地的镜像上传到镜像仓库

docker push [OPTIONS] NAME[:TAG]
Push an image or a repository to a registry
--disable-content-trust   忽略镜像的校验,默认开启

image rm Remove one or more images

docker image rm [OPTIONS] IMAGE [IMAGE...]
-f   Force removal of the image

image prune 删除所有未被 tag 标记和未被容器使用的镜像

docker image prune [OPTIONS]
-a 删除所有未被容器使用的镜像
-f

inspect 获取容器/镜像的元数据

docker inspect [OPTIONS] NAME|ID [NAME|ID...]
-f  指定返回值的模板文件。
-s 显示总的文件大小。
--type  为指定类型返回JSON

history 查看指定镜像的创建历史

docker history [OPTIONS] IMAGE
-H  以可读的格式打印镜像大小和日期,默认为true;
--no-trunc  显示完整的提交记录;
-q  仅列出提交记录ID。 

save 将指定镜像保存成 tar 归档文件

docker save [OPTIONS] IMAGE [IMAGE...]
-o  输出到的文件

load 导入使用 docker save导出的镜像

docker load [OPTIONS]
-i  指定导入的文件,代替 STDIN。
-q  精简输出信息

import 从归档文件中创建镜像

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
Import the contents from a tarball to create a filesystem image
-c  应用docker 指令创建镜像;
-m  提交时的说明文字

容器

ctrl p q 退出容器

commit 从容器创建一个新的镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a  提交的镜像作者
-c  使用Dockerfile指令来创建镜像
-m  提交时的说明文字
-p  在commit时,将容器暂停

container create 创建新的容器但不启动

docker container create [OPTIONS] IMAGE [COMMAND] [ARG...]
-a stdin  指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d  后台运行容器,并返回容器ID;
-i  以交互模式运行容器,通常与 -t 同时使用;
-P  随机端口映射,容器内部端口**随机**映射到主机的端口
-p  指定端口映射,格式为:主机(宿主)端口:容器端口
-t  为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb"  为容器指定一个名称;
-h "mars"  指定容器的hostname;
-e username="ritchie"  设置环境变量;
--env-file=[]  从指定文件读入环境变量;
--net="bridge"  指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]  添加链接到另一个容器;
--expose=[] 开放一个端口或一组端口;
-v 绑定一个卷

run 创建一个新的容器并运行一个命令

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-a  stdin          指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d                 后台运行容器,并返回容器ID;
-i                 以交互模式运行容器,通常与 -t 同时使用;
-p                 指定端口映射,格式为:主机(宿主)端口:容器端口
-t                 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb"      为容器指定一个名称;
--restart              重启策略 
[docker 容器重启策略 - sixinshuier - 博客园 (cnblogs.com)]
(https://www.cnblogs.com/shix0909/p/11387185.html)
-h "mars"              指定容器的hostname;
-e, --env list         Set environment variables (default [])
--env-file=[]          从指定文件读入环境变量;
--network string       Connect a container to a network (default "default")
--net="bridge"         指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型
-v                     将一个卷或主机文件夹挂载到容器文件夹,格式 hostpath:containerpath

start 启动已经被停止的容器

docker start [OPTIONS] CONTAINER [CONTAINER...]
-a           在前台运行容器并输出日志
-i          启动并进入交互模式

restart

docker restart [OPTIONS] CONTAINER [CONTAINER...]
-t  在杀死容器之前等待停止的秒数(默认值为 10

pause 暂停容器中所有的进程

docker pause CONTAINER [CONTAINER...]

container prune 删除所有已停止的容器

docker container prune [OPTIONS]
f   Do not prompt for confirmation

stop

docker stop [OPTIONS] CONTAINER [CONTAINER...]
-t 在杀死它之前等待停止的秒数(默认10

rm

docker rm [OPTIONS] CONTAINER [CONTAINER...]
f     通过 SIGKILL 信号强制删除一个运行中的容器
l     移除容器间的网络连接,而非容器本身
v     删除与容器关联的卷

kill 杀掉一个运行中的容器

docker kill [OPTIONS] CONTAINER [CONTAINER...]
s  向容器发送一个信号

attach 连接到正在运行中的容器

docker attach [OPTIONS] CONTAINER
连接后控制台是否为交互模式取决于启动容器时的参数

docker exec 在运行的容器中执行一条命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
d    分离模式: 在后台运行
i    即使没有附加也保持STDIN 打开
t    分配一个伪终端
e    Set environment variables (default [])
u    Username or UID (format: <name|uid>[:<group|gid>])

cp 用于容器与主机之间的数据拷贝

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
-a    Archive mode (copy all uid/gid information)
-L    保持源目标中的链接

diff 检查容器里文件结构的更改

docker diff CONTAINER

export 将文件系统作为一个tar归档文件导出到STDOUT

docker export [OPTIONS] CONTAINER
o 将输入内容写到文件

inspect 获取容器/镜像的元数据

docker inspect [OPTIONS] NAME|ID [NAME|ID...]
f     指定返回值的模板文件。
s     显示总的文件大小。
type  为指定类型返回JSON

logs 获取容器的日志

docker logs [OPTIONS] CONTAINER
f       跟踪日志输出
since   显示某个开始时间的所有日志
t       显示时间戳
tail    仅列出最新N条容器日志

container ls

docker container ls [OPTIONS]
Options:
a             
q          Only display numeric IDs
s           Display total file sizes

port 列出指定的容器的端口映射

docker port CONTAINER [PRIVATE_PORT[/PROTO]]

rename 重命名目标容器

docker rename CONTAINER NEW_NAME

stats 显示容器资源的使用情况

docker stats [OPTIONS] [CONTAINER...]
-a            显示所有的容器,包括未运行的。
--format      指定返回值的模板文件。
--no-stream   展示当前状态就直接退出了,不再实时更新。
--no-trunc    不截断输出

top 显示容器的运行进程

docker top CONTAINER [ps OPTIONS]

unpause 恢复容器中所有的进程

docker unpause CONTAINER [CONTAINER...]

update 更新容器配置

docker update [OPTIONS] CONTAINER [CONTAINER...]
--blkio-weight uint16         Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
--cpu-period int              Limit CPU CFS (Completely Fair Scheduler) period
--cpu-quota int               Limit CPU CFS (Completely Fair Scheduler) quota
--cpu-rt-period int           Limit the CPU real-time period in microseconds
--cpu-rt-runtime int          Limit the CPU real-time runtime in microseconds
-c int              CPU shares (relative weight)
--cpuset-cpus string          CPUs in which to allow execution (0-3, 0,1)
--cpuset-mems string          MEMs in which to allow execution (0-3, 0,1)
--help                        Print usage
--kernel-memory string        Kernel memory limit
-m string               Memory limit
--memory-reservation string   Memory soft limit
--memory-swap string          Swap limit equal to memory plus swap: '-1' to enable unlimited swap
--restart string              Restart policy to apply when a container exits

volume

docker volume

docker volume COMMAND
Commands:
create      Create a volume
inspect     Display detailed information on one or more volumes
ls          List volumes
prune       Remove all unused volumes
rm          Remove one or more volumes

volumn create 新增卷

docker volume create [OPTIONS] [VOLUMENAME]
-d               指定卷驱动程序(default "local")
--label list     设置卷的元数据(default [])
-o               设置特定于驱动程序的选项 (default map[])

volume inspect 显示一个或多个卷的详细信息

docker volume inspect [OPTIONS] VOLUME [VOLUME...]

ls 显示卷列表

docker volume ls [OPTIONS]
-q         只显示卷名

volume prune 移除所有未使用卷

docker volume prune [OPTIONS]
-f

volume rm 移除卷

docker volume rm [OPTIONS] VOLUME [VOLUME...]
-f

Docker 网络

docker 6 种网络类型+网络插件 - 凡人半睁眼

connect 将容器连接到网络

docker network connect [OPTIONS] NETWORK CONTAINER
--alias stringSlice           Add network-scoped alias for the container  
--ip string                   IP Address  
--ip6 string                  IPv6 Address  
--link list                   Add link to another container (default [])  
--link-local-ip stringSlice   Add a link-local address for the container   

network create

docker network create [OPTIONS] NETWORK
--attachable      启用手动容器安装  
--aux-address     网络驱动程序使用的辅助IPv4或IPv6地址  
-d                驱动程序管理网络   
--gateway         用于主子网的IPv4或IPv6网关   
--internal        限制对网络的外部访问 
--ip-range        从子范围分配容器ip 
 --ipam-driver    IP地址管理驱动程序
--ipam-opt        设置IPAM驱动程序的具体选项
--ipv6            启用IPv6网络 
--label           在网络上设置元数据
-o                设置驱动程序特定选项
--subnet          表示网段的CIDR格式的子网

network disconnect 切断容器与网络连接

docker network disconnect [OPTIONS] NETWORK CONTAINER
-f

network inspect 显示网络信息

docker network inspect [OPTIONS] NETWORK [NETWORK...]
-f 

network ls 网络列表

docker network ls [OPTIONS]
-f filter         Provide filter values (e.g. 'driver=bridge')
--format string   Pretty-print networks using a Go template
--no-trunc        不截断输出
-q                只显示网络id

network prune 移除所有未使用网络

docker network prune [OPTIONS]
-f

network rm

docker network rm NETWORK [NETWORK...]

DockerCompose

Docker Compose | 菜鸟教程 (runoob.com) docker-compose.yml 配置文件编写详解
docker-compose.yml的详细解释与说明
docker-compose.yml详解

Docker Swarm

Swarm 集群管理 | 菜鸟教程 (runoob.com)
浅析Docker Stack常用命令、Docker Compose和Docker Stack区别及Docker Stack部署web集群流程

swarm init 初始化一个群集

此命令所针对 Docker 引擎成为新创建的单节点群集中的管理器。

docker swarm init [OPTIONS]
--advertise-addr           (格式:<ip/interface>[:port])  
--autolock                 启用管理员自动锁定(需要解锁键启动停止的管理器),默认false     
--cert-expiry              节点证书的有效期( ns/us/ms/s/m/h )        
--dispatcher-heartbeat     调度心跳周期( ns/us/ms/s/m/h )        
--external-ca              一个或多个证书签名端点的规范                      
--force-new-cluster        强制从当前状态创建一个新的群集(Swarm),默认false              
--listen-addr                监听地址(格式:<ip / interface> [:port]),默认0.0.0.0:2377 
--max-snapshots            要保留的额外的筏子快照数量                       
--snapshot-interval        筏子快照之间的日志条目数                      
--task-history-limit       任务历史保留限制                           

swarm join加入群组

docker swarm join [OPTIONS] HOST:PORT
--advertise-addr  播发地址(格式:<ip / interface> [:port])) 
--listen-addr    监听地址(格式:<ip / interface> [:port]),默认0.0.0.0:2377  
--token         加入群组的令牌                              

swarm join-token 管理连接令牌

docker swarm join-token [OPTIONS] (worker|manager)
-q         只显示令牌  
--rotate   旋转连接令牌

swarm leave 离开集群

docker swarm leave [OPTIONS]
-f    强制此节点离开群集,忽略警告

docker swarm英文文档学习-11-上锁你的集群来保护你的加密密钥 - 慢行厚积

swarm unlock 解锁群组。

docker swarm unlock

swarm unlock-key 命令用于管理解锁钥匙。

docker swarm unlock-key [OPTIONS]
-q          只显示令牌 
--rotate    旋转解锁键

swarm update 更新集群

docker swarm update [OPTIONS]
--autolock                        Change manager autolocking setting (true|false)
--cert-expiry duration            Validity period for node certificates (ns|us|ms|s|m|h) (default 2160h0m0s)
--dispatcher-heartbeat duration   Dispatcher heartbeat period (ns|us|ms|s|m|h) (default 5s)
--external-ca external-ca         Specifications of one or more certificate signing endpoints
--max-snapshots uint              Number of additional Raft snapshots to retain
--snapshot-interval uint          Number of log entries between Raft snapshots (default 10000)
--task-history-limit int          Task history retention limit (default 5)

service 在集群中使用容器

docker service与docker container的区别

service create 创建一个新服务

一般在集群中使用

docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]
--constraint list                  Placement constraints (default [])
--container-label list             Container labels (default [])
--dns list                         Set custom DNS servers (default [])
--dns-option list                  Set DNS options (default [])
--dns-search list                  Set custom DNS search domains (default [])
--endpoint-mode string             Endpoint mode (vip or dnsrr)
-e                       Set environment variables (default [])
--env-file list                    Read in a file of environment variables (default [])
--group list                       Set one or more supplementary user groups for the container (default [])
--health-cmd string                Command to run to check health
--health-interval duration         Time between running the check (ns|us|ms|s|m|h)
--health-retries int               Consecutive failures needed to report unhealthy
--health-timeout duration          Maximum time to allow one check to run (ns|us|ms|s|m|h)
--help                             Print usage
--host list                        Set one or more custom host-to-IP mappings (host:ip) (default [])
--hostname string                  Container hostname
-l                      Service labels (default [])
--limit-cpu decimal                Limit CPUs (default 0.000)
--limit-memory bytes               Limit Memory (default 0 B)
--log-driver string                Logging driver for service
--log-opt list                     Logging driver options (default [])
--mode string                      Service mode (replicated or global) (default "replicated")
--mount mount                      Attach a filesystem mount to the service
--name string                      Service name
--network list                     Network attachments (default [])
--no-healthcheck                   Disable any container-specified HEALTHCHECK
-p, --publish port                     Publish a port as a node port
--replicas uint                    Number of tasks
--reserve-cpu decimal              Reserve CPUs (default 0.000)
--reserve-memory bytes             Reserve Memory (default 0 B)
--restart-condition string         Restart when condition is met (none, on-failure, or any)
--restart-delay duration           Delay between restart attempts (ns|us|ms|s|m|h)
--restart-max-attempts uint        Maximum number of restarts before giving up
--restart-window duration          Window used to evaluate the restart policy (ns|us|ms|s|m|h)
--secret secret                    Specify secrets to expose to the service
--stop-grace-period duration       Time to wait before force killing a container (ns|us|ms|s|m|h)
-t                             Allocate a pseudo-TTY
--update-delay duration            Delay between updates (ns|us|ms|s|m|h) (default 0s)
--update-failure-action string     Action on update failure (pause|continue) (default "pause")
--update-max-failure-ratio float   Failure rate to tolerate during an update
--update-monitor duration          Duration after each task update to monitor for failure (ns|us|ms|s|m|h) (default 0s)
--update-parallelism uint          Maximum number of tasks updated simultaneously (0 to update all at once) (default 1)
-u string                      Username or UID (format: <name|uid>[:<group|gid>])
--with-registry-auth               Send registry authentication details to swarm agents
-w string                   Working directory inside the container

service inspect 显示服务的详细信息

docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]
-f         使用给定的Go模板格式化输出 
--pretty   以人性化的格式打印信息  

service logs 获取服务的日志

注意:此命令仅适用于使用json-file或日志记录驱动程序启动的服务。

docker service logs [OPTIONS] SERVICE
--details      显示额外的详细信息到日志中  
-f             按照日志输出         
--no-resolve   不要将ID映射到名称     
--since        从某个时间戳起显示日志    
--tail         从日志结尾的指定行数开始显示 
-t             显示时间戳 

service ls 列出服务

docker service ls [OPTIONS]
-f     根据提供的条件过滤输出 
-q     只显示ID    

service rm 删除服务

docker service rm SERVICE [SERVICE...]

service scale 指定副本数量

命令用于使您能够将一个或多个复制服务向上或向下缩放到所需数量的副本。 此命令不能应用于全局模式的服务。 该命令将立即返回,但服务的实际缩放可能需要一些时间。 要停止服务的所有副本,同时保持服务在群集中的活动,您可以将比例设置为0

docker service scale SERVICE=REPLICAS [SERVICE=REPLICAS...]

docker service update 更新服务

docker service update [OPTIONS] SERVICE
--args string                      Service command args
--constraint-add list              Add or update a placement constraint (default [])
--constraint-rm list               Remove a constraint (default [])
--container-label-add list         Add or update a container label (default [])
--container-label-rm list          Remove a container label by its key (default [])
--dns-add list                     Add or update a custom DNS server (default [])
--dns-option-add list              Add or update a DNS option (default [])
--dns-option-rm list               Remove a DNS option (default [])
--dns-rm list                      Remove a custom DNS server (default [])
--dns-search-add list              Add or update a custom DNS search domain (default [])
--dns-search-rm list               Remove a DNS search domain (default [])
--endpoint-mode string             Endpoint mode (vip or dnsrr)
--env-add list                     Add or update an environment variable (default [])
--env-rm list                      Remove an environment variable (default [])
--force                            Force update even if no changes require it
--group-add list                   Add an additional supplementary user group to the container (default [])
--group-rm list                    Remove a previously added supplementary user group from the container (default [])
--health-cmd string                Command to run to check health
--health-interval duration         Time between running the check (ns|us|ms|s|m|h)
--health-retries int               Consecutive failures needed to report unhealthy
--health-timeout duration          Maximum time to allow one check to run (ns|us|ms|s|m|h)
--help                             Print usage
--host-add list                    Add or update a custom host-to-IP mapping (host:ip) (default [])
--host-rm list                     Remove a custom host-to-IP mapping (host:ip) (default [])
--hostname string                  Container hostname
--image string                     Service image tag
--label-add list                   Add or update a service label (default [])
--label-rm list                    Remove a label by its key (default [])
--limit-cpu decimal                Limit CPUs (default 0.000)
--limit-memory bytes               Limit Memory (default 0 B)
--log-driver string                Logging driver for service
--log-opt list                     Logging driver options (default [])
--mount-add mount                  Add or update a mount on a service
--mount-rm list                    Remove a mount by its target path (default [])
--no-healthcheck                   Disable any container-specified HEALTHCHECK
--publish-add port                 Add or update a published port
--publish-rm port                  Remove a published port by its target port
--replicas uint                    Number of tasks
--reserve-cpu decimal              Reserve CPUs (default 0.000)
--reserve-memory bytes             Reserve Memory (default 0 B)
--restart-condition string         Restart when condition is met (none, on-failure, or any)
--restart-delay duration           Delay between restart attempts (ns|us|ms|s|m|h)
--restart-max-attempts uint        Maximum number of restarts before giving up
--restart-window duration          Window used to evaluate the restart policy (ns|us|ms|s|m|h)
--rollback                         Rollback to previous specification
--secret-add secret                Add or update a secret on a service
--secret-rm list                   Remove a secret (default [])
--stop-grace-period duration       Time to wait before force killing a container (ns|us|ms|s|m|h)
-t, --tty                              Allocate a pseudo-TTY
--update-delay duration            Delay between updates (ns|us|ms|s|m|h) (default 0s)
--update-failure-action string     Action on update failure (pause|continue) (default "pause")
--update-max-failure-ratio float   Failure rate to tolerate during an update
--update-monitor duration          Duration after each task update to monitor for failure (ns|us|ms|s|m|h) (default 0s)
--update-parallelism uint          Maximum number of tasks updated simultaneously (0 to update all at once) (default 1)
-u, --user string                      Username or UID (format: <name|uid>[:<group|gid>])
--with-registry-auth               Send registry authentication details to swarm agents
-w, --workdir string                   Working directory inside the container

secret

docker swarm docker secret 的使用和管理
Docker Secret管理和使用

secret create 创建secrets

docker secret create [OPTIONS] SECRET file|-
-l   标签

secret inspect 显示secret的详细信息

docker secret inspect [OPTIONS] SECRET [SECRET...]
-f           使用给定的Go模板格式化输出 
--pretty     以人性化的格式打印信息

secret ls 列出secret

docker secret ls [OPTIONS]
-f           根据提供的条件过滤输出 
--format     使用Go模板的俏皮秘密 
-q           只显示ID

secret rm 删除secret

docker secret rm SECRET [SECRET...]

node

node demote 从群集管理器中删除节点

docker node demote NODE [NODE...]

node inspect 显示节点的详细信息

docker node inspect [OPTIONS] self|NODE [NODE...]
-f          使用给定的Go模板格式化输出 
--pretty    以人性化的格式打印信息

node ls 列出群组中的节点

docker node ls [OPTIONS]
-f          根据提供的条件过滤输出 
-q          只显示ID 

node promote 将节点提升为群集中的管理器

docker node promote NODE [NODE...]

node ps 列出在节点上运行的任务

docker node ps [OPTIONS] [NODE...]
-f             根据提供的条件过滤输出 
--no-resolve   不要将ID映射到名称  
--no-trunc     不要截断输出 

node rm 从群集中删除节点

docker node rm [OPTIONS] NODE [NODE...]
-f    强制从群集中删除一个节点 

node update 更新一个节点

docker node update [OPTIONS] NODE
--availability  节点的可用性(有效/暂停/耗尽)         
--label-add     添加或更新节点标签(key = value)  
--label-rm      删除节点标签(如果存在)            
--role          节点的角色(worker / manager) 

Docker Stack

使用Docker Stack部署应用

stack deploy 部署新的堆栈或更新现有堆栈

从群集中的compose文件或dab文件创建和更新堆栈

docker stack deploy [OPTIONS] STACK
--bundle-file         分布式应用程序包文件的路径          
-c                    Compose 文件的路径          
--with-registry-auth  将注册表身份验证详细信息发送给Swarm代理 

stack ls 栈堆列表

docker stack ls
--format  较好地打印堆栈使用Go模板

stack ps 列出堆栈中的任务

docker stack ps [OPTIONS] STACK
-f              根据提供的条件过滤输出  
--no-resolve    不要将ID映射到名称   
--no-trunc      不要截断输出  

stack rm 从群集中移除堆栈

docker stack rm STACK
-f             根据提供的条件过滤输出 
--no-resolve   不要将ID映射到名称  
--no-trunc     不要截断输出   

stack services 列出堆栈中的服务

docker stack services [OPTIONS] STACK
-f      根据提供的条件过滤输出 
-q     只显示ID  

systemctl

system df 显示 Docker 磁盘使用情况

docker system df [OPTIONS]
-v   显示详细信息

system events 从服务器获取实时事件

docker system events [OPTIONS]
-f filter         Filter output based on conditions provided
--format string   Format the output using the given Go template
--help            Print usage
--since string    Show all events created since timestamp
--until string    Stream events until this timestamp

system info 显示系统范围的信息

docker system info [OPTIONS]
-f         Format the output using the given Go template
--help            Print usage

system prune 删除未使用的数据

docker system prune [OPTIONS]
-a     Remove all unused images not just dangling ones
-f     Do not prompt for confirmation

相关操作

部署springboot

打包

1.在项目启动类所在模块的pom文件中添加插件

<build>
    <plugins>
        <plugin>
            <!--该插件主要用途:构建可执行的JAR -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.4.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

2.在父项目中clean、package 生成jar包

image.png

部署

  1. 创建 openjdk:8 容器
docker run --name 项目名 -p 8081:8081 -it -v 主机挂载目录:容器内项目目录 openjdk:8 /bin/bash 
  1. ctrl+p+q 退出容器
    不用-it进入,容器会直接关闭,bin/bash直接被关了?菜狗求教
  2. cd 主机挂载目录 上传jar包到这个目录
  3. 运行 连接容器,进入容器内项目目录 java -jar jar包 &> 控制台输出.log &