Docker ------ 安装

docker简介

  • Docker 镜像(Images)
    Docker 镜像是用于创建 Docker 容器的模板。
  • Docker 容器(Container)
    容器是独立运行的一个或一组应用。
  • Docker 客户端(Client)
    Docker 客户端通过命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 与 Docker 的守护进程通信。
  • Docker 主机(Host)
    一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
  • Docker 仓库(Registry)
    Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。
  • Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。
  • Docker Machine
    Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

容器运行载体 管理引擎
一次构建处处运行
镜像 image 类
容器 container 实例
仓库 registry

容器使用镜像创建的运行实例

查看 系统信息(版本 内核)

uname -r
cat /etc/redhat-release

docker是怎么工作的

Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。 容器,是一个运行时环境,就是我们前面说到的集装箱。

为什么docker比VM快

  1. docker有着比虚拟机更少的抽象层。由亍docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。
  2. docker利用的是宿主机的内核,而不需要Guest OS。因此,当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。仍而避免引寻、加载操作系统内核返个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,返个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返个过程,因此新建一个docker容器只需要几秒钟。

安装

CentOS 6.8

yum install -y epel-release
yum install -y docker-io
# 安装后的配置文件/etc/sysconfig/docker
service doceker start

阿里云
配置加速地址

other_args="--registry-mirrors=https://xxxxx.mirror.aliyuncs.com"
service docker restart
ps -ef|grep docker

CentOS 7

repository

# 先卸载一下已安装的docker
sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

# 安装 组件
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

# 添加 远程仓库
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 安装docker组件
$ sudo yum install docker-ce docker-ce-cli containerd.io

# docker版本列表
$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable

# 安装对应的版本
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

# 启动
$ sudo systemctl start docker

# helloworld
$ sudo docker run hello-world

配置加速地址

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://gxkkh7xj.mirror.aliyuncs.com"]
}


sudo systemctl daemon-reload
sudo systemctl restart docker

网易云 [http://hub-mirror.c.163.com]

hello world

docker run hello-world

命令

帮助命令

docker info
docker version
docker --help

镜像命令

docker images
REPOSITORY: 表示镜像仓库源
TAG: 镜像的标签
IMAGE ID: 镜像ID
CREATED: 镜像创建时间
SIZE: 镜像大小

  • -a: 列出本地所有镜像(含中间映像层)
  • -q: 只显示镜像ID
  • –digests: 显示镜像的摘要信息
  • –no-trunc: 显示完整的镜像信息
    同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
    如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像

docker search [OPTIONAS]某个镜像名字
搜索镜像

  • -s [OPTIONAS]: 列出收藏数不小于指定值的镜像
  • –no–trunc: 显示完整的镜像描述
  • –automated: 只列出automated build类型的镜像

docker pull 某个镜像名字[:tag]
下载镜像

docker rmi [OPTIONS]某个镜像名字[:tag]
删除镜像
docker rmi [OPTIONS]某个镜像名字[:tag] [OPTIONS]某个镜像名字[:tag] [OPTIONS]某个镜像名字[:tag]…
docker rmi -f $(docker images -qa)

  • -f: 强制删除

容器命令

docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
新建并启动容器
OPTIONS:

  • –name=“容器新名字”: 为容器定一个名称
  • -d: 后台运行容器,并返回容器ID,启动守护式容器
  • -i: 以交互模式运行容器,通常与 -t 同时使用
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • -P: 随机端口映射
  • -p: 指定端口映射
    1. ip:hostPort:containerPort
    2. ip::containerPort
    3. hostPort:containerPort
    4. containerPort

docker ps [OPTIONS]
雷处当前所有正在运行的容器
OPTIONS:

  • -a: 列出当前所有正在运行的容器+历史上运行过的
  • -l: 显示最近创建的容器
  • -n: 显示最近n个创建的容器
  • -q: 静默模式,只显示容器编号
  • –no-trunc: 不截断输出
    使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
    docker run -it centos /bin/bash

退出容器
exit 容器停止退出

ctrl+P+Q 容器不停止退出

docker start 容器ID或者容器名
启动容器

docker restart 容器ID或者容器名
重启容器

docker stop 容器ID或者容器名
停止容器

docker kill 容器ID或者容器名
强制停止容器

docker rm 容器ID
删除已停止的容器
docker rm -f 容器ID
强制删除
一次性删除多个 (列出所有的 容器编号)

  1. docker rm -f $(docker ps -a -q)
  2. docker ps -a -q | xargs docker rm

docker run -d 容器名
启动守护式容器
docker ps 不存在这个后台启动的容器

docker logs -f -t --tail 容器ID
查看容器日志

  • -t: 加入时间戳
  • -f: 跟随最新的日志
  • –tail: 数字显示最后多少条

docker top 容器ID
查看容器内运行的进程

docker inspect 容器ID
查看容器内部细节

docker exec -it 容器ID bashShell
docker attach 容器ID
进入正在运行的容器并以命令行交互
attach 直接进入容器启动命令的终端,不会启动新的进程
exec 在容器中打开新的终端,并且可以启动新的进程

docker cp 容器ID:容器内路径 目的主机路径
从容器拷贝文件到主机上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章