logo头像
ICQL

412_docker-常用命令

官方文档:https://docs.docker.com/

虚拟化技术

  • 1、Hypervisor:VMware vSphere、微软Hyper-V
  • 2、基于容器的虚拟化:Docker Container

docker架构

docker架构

  • 1、docker daemon:守护进程
    • 处理docker api请求
    • 管理docker对象
  • 2、docker client:客户端
    • docker client使用docker api和docker daemon进行交互
    • 可以根多个不同的docker daemon进行通讯
  • 3、docker registries:注册中心
    • 存储docker镜像
    • 共有docker hub和私有docker registry
  • 4、docker对象
    • 镜像:用于创建容器的只读模板
    • 容器:镜像的运行实例
  • 5、docker网络模型
    • None网络模型:容器不能对外进行网络通信
    • Bridge网络模型:同一主机上同一个bridge网络的所有容器可以互相通信,不同的bridge不能直接通信,不同主机间也不能直接通信
    • Host网络模型:和宿主机公用网络
    • Overlay网络模型:支持多主机间直接通讯

安装docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 安装docker
yum install docker

# 查看Docker版本
docker -v

# 启动与停止
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker

# 开机启动
systemctl enable docker

# 查看docker概要信息
docker info

# 切换阿里的registry镜像源
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://zhfojaep.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker

# 查看docker帮助,所有命令
docker --help

docker镜像操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看本地镜像
docker images

# 网络搜索镜像
docker search nginx

# 网络拉取镜像,版本号为5.7
docker pull nginx:5.7

# 删除镜像
docker rmi nginx

# 找出tag为<none>的
docker rmi $(docker images -q -f "dangling=true")

docker镜像层

  • docker镜像层
    • 运行中的容器,所有变化都在可写入层
    • 一旦容器删除,可写入层随之删除
    • 多个容器共享base镜像
  • 创建docker镜像

docker容器操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# 获取容器/镜像的元数据
docker inspect name/id

# 查看正在运行容器
docker ps

# 查看所有的容器(启动过的历史容器)
docker ps -a

# 查看最后一次运行的容器
docker ps –l

# 查看停止的容器
docker ps -f status=exited

# 创建守护式容器(退出不会停止)
docker run -di --name=mycentos centos:7

# 登录守护式容器
docker exec -it container_name (或者 container_id) /bin/bash

# 启动容器
docker start name/id

# 停止容器
docker stop name/id

# 拷贝文件
docker cp 需要拷贝的文件或目录 容器名称:容器目录
docker cp 容器名称:容器目录 需要拷贝的文件或目录

# 删除指定的容器
docker rm $CONTAINER_ID/NAME

# 删除所有容器
docker rm `docker ps -a -q`

# 查看docker容器日志
docker logs [OPTIONS] CONTAINER

# 删除所有失败的容器
docker rm $(docker ps -q -f status=exited)

容器编排:docker-compose

  • 安装docker-compose

    1
    2
    3
    4
    5
    curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

    chmod +x /usr/local/bin/docker-compose

    docker-compose -version
  • 常用命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    # docker-compose容器相关命令必须在有docker-compose.yml文件的上下文中执行

    # 具体参数可以使用docker-compose up --help 查看

    # 启动容器(后台)
    docker-compose up -d

    # 查看运行的容器
    docker-compose ps

    # 查看容器日志
    docker-compose logs

    # 停止容器
    docker-compose stop

    # 删除容器
    docker-compose rm

    # 重新构建容器
    docker-compose build

容器编排:k8s

微信打赏

赞赏是不耍流氓的鼓励