【工具】Docker的使用

目录

理论

基础操作

在Ubuntu上配置Docker

理论

1.容器的概念:容器是对应用程序及其依赖关系的封装,可以看成是一个轻量级的虚拟机环境。

  • 容器能与主机的操作系统共享资源
  • 运行容器开销小,可以大数量多开
  • 容器具有强可移植性,换个电脑也能跑
  • 虚拟机的目的是要完整地模拟另一个环
    境;而容器的目的则是使应用程序能够移植,并把所有依赖关系包含进去(这一点有点像yum)

2.Docker利用的是Linux的容器技术,Docker 平台拥有两个不同部分

  • 负责创建与运行容器的Docker引擎
  • 用来发布容器的云服务Docker Hub

3.Docker工具:

  • 集群管理工具Swarm
  • 用于处理容器的图形用户界面Kitematic,
  • 部署Docker主机的命令行工具Machine。

基础操作

1.运行第一个镜像

1
2
3
4
5
docker run debian echo "Hello World"

# docker run是启动容器命令
# 意为docker运行名叫debian的镜像并执行echo "Hello World"操作
# 若本地找不到debian镜像,docker会在Docker Hub自动下载

2.在镜像中使用shell

1
2
3
docker run -i -t debian /bin/bash

# 退出容器中的shell直接运行exit即可

3.用指定主机名“CONTAINER”启动镜像

1
docker run -h CONTAINER -i -t debian /bin/bash

4.查看正在运行的容器信息,会出现容器id和名称(这两个字段都可以用作inspect的参数)

1
2
3
doker ps

# docker ps -a 会显示所有容器

5.显示某容器的详细信息

1
2
3
docker inspect xx

# docker inspect xx1 | grep xx2 会显示容器xx1含有xx2字段的属性

6.显示某容器哪些文件被改动过

1
docker diff xx

7.显示容器中发生的一切操作记录

1
docker logs xx

8.删除容器

1
2
3
docker rm xx

# 常用命令docker rm -v $(docker ps -aq -f status=exited)删除所有已停止的容器

在Ubuntu上配置Docker

1.安装Docker

  • 更新apt源索引
    1
    sudo apt-get update
  • 允许apt通过HTTPS使用仓库
    1
    2
    3
    4
    5
    sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
  • 添加Docker官方的GPG密钥
    1
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 设置Docker稳定版仓库
    1
    2
    3
    4
    sudo add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable"
  • 再一次更新apt源索引
    1
    sudo apt-get update
  • 下载安装Docker社区版
    1
    sudo apt-get install docker-ce

2.检查Docker是否配置正确

  • 检查Docker CE是否安装正确
    1
    sudo docker run hello-world
    若出现下述内容则表示安装正确
    1
    2
    3
    4
    5
    6
    7
    8
    Hello from Docker!
    This message shows that your installation appears to be working correctly.

    To generate this message, Docker took the following steps:
    1. The Docker client contacted the Docker daemon.
    ......
    For more examples and ideas, visit:
    https://docs.docker.com/get-started/
  • 检查Docker是否可用
    1
    docker version
    若只出现Client配置,则表示权限不正确
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Client: Docker Engine - Community
    Version: 20.10.7
    API version: 1.41
    Go version: go1.13.15
    Git commit: f0df350
    Built: Wed Jun 2 11:56:38 2021
    OS/Arch: linux/amd64
    Context: default
    Experimental: true
    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version: dial unix /var/run/docker.sock: connect: permission denied
    需输入
    1
    sudo chmod a+rw /var/run/docker.sock
    之后显示以下内容,则表示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
    Client: Docker Engine - Community
    Version: 20.10.7
    API version: 1.41
    Go version: go1.13.15
    Git commit: f0df350
    Built: Wed Jun 2 11:56:38 2021
    OS/Arch: linux/amd64
    Context: default
    Experimental: true

    Server: Docker Engine - Community
    Engine:
    Version: 20.10.7
    API version: 1.41 (minimum version 1.12)
    Go version: go1.13.15
    Git commit: b0f5bc3
    Built: Wed Jun 2 11:54:50 2021
    OS/Arch: linux/amd64
    Experimental: false
    containerd:
    Version: 1.4.6
    GitCommit: d71fcd7d8303cbf684402823e425e9dd2e99285d
    runc:
    Version: 1.0.0-rc95
    GitCommit: b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
    docker-init:
    Version: 0.19.0
    GitCommit: de40ad0