Spring Boot 容器化 docker 命令

前言

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

docker 的优点

  1. 更高效的利用系统资源

docker对系统资源的利用率更高,无论是应用执行速度,内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机往往可以运行更多数量的应用。

  1. 更快速的启动时间

传统的虚拟机技术启动应用服务往往需要数分钟,而docker容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级,甚至毫秒级的启动时间,大大的节约了开发测试,部署的时间。

  1. 更轻松的迁移

由于docker确保了执行环境的一致性,使得应用的迁移更加的容易。docker可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云、甚至是笔记本、其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。

  1. 持续支付和部署

对开发和运维人员来说,最希望就是一次创建和部署,可以在任意的地方运行。(定制应用镜像来实现集成、持续支付、部署。开发人员可以通过dockerfile来进行镜像构建,并结合持续集成系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合持续部署系统进行自动部署)。而且使用dockerfile使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。

1、docker 命令

1.1、docker 基础命令

启动docker

systemctl start docker

关闭docker

systemctl stop docker

重启docker

systemctl restart docker

docker设置随服务启动而自启动

systemctl enable docker

查看docker 运行状态,如果是在运行中会看到绿色的active

systemctl status docker

查看docker 版本号信息

docker version 或者 docker info

docker 帮助命令

docker --help

1.2、docker 镜像命令

列出本地镜像

docker images

搜索镜像

docker images -f "dangling=true"

拉取镜像

docker pull 镜像名 拉取docker仓库中最新版本latest
docker pull 镜像名:tag 拉取docker仓库中指定版本的tag 

运行镜像

docker run [命令] 镜像名
例如:docker run -it -p 80:80 -v /data:/data -d nginx:latest
  • – i: 以交互模式运行容器,通常与 -t 同时使用
  • – P: 随机端口映射,容器内部端口随机映射到主机的端口
  • – p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • – t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • – h"mars": 指定容器的hostname
  • – m :设置容器使用内存最大值
  • – v: 绑定一个卷
  • – d: 后台运行容器,并返回容器ID
  • – – name="nginx"为容器指定一个名称
  • – – dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致
  • – – dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致
-it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器 起的名字  /bin/bash  交互路径
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash 

删除镜像

#删除一个
docker rmi -f 镜像名/镜像ID
#删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)

保存镜像

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字

加载镜像

docker load -i 镜像tar包

从归档文件中创建镜像

docker import  my_ubuntu_v3.tar runoob/ubuntu:v4

镜像标签

docker tag ubuntu:15.10 ubuntu:v3

查看指定镜像的创建历史

docker history runoob/ubuntu:v3

Dockerfile 创建镜像

docker build -f /path/to/a/Dockerfile

1.3、docker 容器命令

查看正在运行容器列表

docker ps

查看所有容器,包含正在运行和已停止的

docker ps -a

停止容器

docker stop 容器名/容器ID

重启容器

docker restart 容器ID/容器名

启动容器

docker start 容器ID/容器名

杀掉一个运行中的容器

docker kill -s KILL mynginx

删除容器

#删除一个容器
docker rm -f 容器名/容器ID
#删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
#删除全部容器
docker rm -f $(docker ps -aq)

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

将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下
docker cp /www/runoob 96f7f14e99ab:/www/

将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www
docker cp /www/runoob 96f7f14e99ab:/www

将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中
docker cp  96f7f14e99ab:/www /tmp/

暂停容器中所有的进程

docker pause db01

恢复容器中所有的进程

docker unpause db01

创建一个新的容器但不启动它

docker create  --name myrunoob  nginx:latest

在运行的容器中执行命令

docker exec -it 容器名/容器ID /bin/bash
#推荐使用 exec 方式
docker attach 容器名/容器ID

获取容器/镜像的元数据

docker inspect mysql:5.6

查看容器中运行的进程信息

docker top mymysql

连接到正在运行中的容器

docker attach --sig-proxy=false mynginx

从服务器获取实时事件

#显示docker 2016年7月1日后的所有事件。
docker events  --since="1467302400"

获取容器的日志

docker logs -f mynginx

阻塞运行直到容器停止

docker wait CONTAINER

容器按日期保存为tar文件

docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2

查看容器的端口映射情况

docker port mymysql

列出所有在运行的容器信息

 docker stats

从容器创建一个新的镜像

  • – a :提交的镜像作者
  • – c :使用Dockerfile指令来创建镜像
  • – m :提交时的说明文字
  • – p :在commit时,将容器暂停。
docker commit -a "runoob.com" -m "my apache" a404c6c174a2  mymysql:v1

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

docker diff mymysql

1.4、docker镜像仓库命令

登陆登出仓库

#登陆仓库
docker login 仓库地址 -u admin -p 139926
#登出仓库
docker out

从仓库查找镜像

docker search -f 条件

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

docker push myapache:v1

从镜像仓库中拉取或者更新指定镜像

docker pull boatswain.registry.com.cn:30100/myapache:v1
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值