docker基本概念和相关命令

!!! 前面都是概念东西,可以直接跳到Docker命令就可以了(直接搜吧“Docker命令”,页内无法跳转,还在研究中……)

容器和虚拟化

容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行,容器可以理解为一个轻量级的沙箱
例如应用容器tomcat,就是把应用程序放到tomcat容器中,应用程序在容器中运行,通过容器暴露的端口,访问容器中的应用

容器是操作系统层实现的运行环境封装

虚拟化的概念,常用的虚拟机,例如VMWare和OpenStack
每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用
虚拟机是硬件支持加虚拟化技术实现的运行环境封装

理解Docker

我们造一间房子,需要设计图纸、搅拌水泥、搬砖头、砌墙......,然后才能把房子造好
下次换个地方造房子,上面的步骤需要再来一遍,非常麻烦。
假设我们有一种神奇的方式,可以把之前造的房子拷贝一份,然后把这个拷贝放到背包里,
带到新的需要造房子的地方,用这个拷贝复制出一间一模一样的新房子。这样就可以快速造出一模一样、分毫不差的房子了

这种神奇的方式就是Docker容器技术。房子的拷贝就是镜像(Image),放拷贝的背包就是仓库(Repository),用拷贝造出的新房子就是容器(Container)。

docker就是进程封装。启动一个docker容器就是启动一个封装的进程

Docker简介

<https://docs.docker.com/engine/install/centos/>

Docker是一个开源的应用容器引擎,基于GO语言开发
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
用于创建、管理和编排容器

Docker可以理解为是一个超轻量级的虚拟机
相较于传统的VM虚拟化方法,Docker的好处是启动速度快,资源利用率高,性能开销小

Docker使用的是C/S结构,即客户端/服务端体系结构
Docker客户端与Docker服务端进行交互,Docker服务端负责构建、运行和分发Docker镜像

Docker应用场景

web应用的自动打包和发布
自动化测试和持续集成、发布
在服务型环境中部署和调整数据库或其他的后台应用

Docker使用

docker --version
docker system info

Docker命令

# 启动docker
	systemctl start docker
# 列出了本地 Docker 主机上存储的镜像
    docker image ls

# 检查 Docker 是否正在运行
    docker version

# 启动容器(tomcat,redis)
    docker run --name tomcat -P -d tomcat
    docker run -p 6379:6379 -d redis

# 删除实例
    docker rmi 容器id或者镜像名
    用-f强制删除

# 启动一个已经停止的容器实例
    docker start 容器ID或容器名

# 停止一个正在运行的容器
    docker stop 容器ID或容器名

# 查看正在运行的容器信息
    docker ps

# 列表列出所有的容器及运行情况
    docker stats

# 清理残存一些临时的的镜像
    docker image prune

# 拉取镜像
    docker pull 镜像名

# 退出容器终端,不会导致容器的停止
    docker exec
    docker exec -it 43f7a65ec7f8 redis-cli

# docker search 命令来搜索镜像

# docker查看日志记录
    docker logs 容器ID或容器名

# 查看有什么容器,并重新启动
    docker ps -a
    docker restart 4a8967b962ca

# 重启docker
    systemctl start docker
    

Docker组成

Client客户端
Daemon守护进程
Image镜像
Container容器

Docker安装

Docker 要求 CentOS 系统的内核版本高于 3.10
uname -r

移除旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

docker ps里面的字段名称

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
    状态有7种:
        created(已创建)
        restarting(重启中)
        running 或 Up(运行中)
        removing(迁移中)
        paused(暂停)
        exited(停止)
        dead(死亡)
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。

其他

# 以下命令创建一个以进程方式运行的后台模式容器
    docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    需要确认容器有在运行,可以通过 docker ps 来查看:

通过运行 exit 命令或者使用 CTRL+D 来退出容器

运行交互式的容器docker run -i -t ubuntu:15.10 /bin/bash
    -t: 在新容器内指定一个伪终端或终端。
    i: 允许你对容器内的标准输入 (STDIN) 进行交互。

docker run -itd --name ubuntu-test ubuntu /bin/bash
    加了 -d 参数默认不会进入容器
    想要进入容器docker attach
    使用 docker exec 命令,退出容器终端,不会导致容器的停止。

如果要导出本地某个容器,可以使用 docker export 命令
     docker export 1e560fca3906 > ubuntu.tar(导出容器 1e560fca3906 快照到本地文件 ubuntu.tar)
导入容器快照
    使用 docker import 从容器快照文件中再导入为镜像
    cat docker/ubuntu.tar | docker import - test/ubuntu:v1(将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值