美文网首页
Docker 介绍及基本使用 - 一

Docker 介绍及基本使用 - 一

作者: 懒猫睡醒了 | 来源:发表于2021-07-26 20:54 被阅读0次

一、Docker 介绍

简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
基于内核虚拟化的技术,使用namespace进行用户隔离,利用cgroup进行资源控制。


图片来源https://yeasy.gitbook.io/docker_practice/introduction/what

容器与虚拟化的不同

虚拟化云服务
docker架构

Cgroup
Cgroup是control group,又称为控制组,它主要是做资源控制。原理是将一组进程放在放在一个控制组里,通过给这个控制组分配指定的可用资源,达到控制这一组进程可用资源的目的。

Namespace
Namespace又称为命名空间,它主要做访问隔离。其原理是针对一类资源进行抽象,并将其封装在一起提供给一个容器使用,对于这类资源,因为每个容器都有自己的抽象,而他们彼此之间是不可见的,所以就可以做到访问隔离。

容器的优势:

  1. 启动快
  2. 资源占用少
  3. 体积小

二、docker的安装

在CentOS上安装,可以采用以下安装方式:

yum install docker
yum install docker-engine
yum install docker-ce
docker-ce 的安装是最新的安装方式,在安装docker的时候,需要提前移除之前的旧的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
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io

三、镜像获取

镜像文件搜索
docker search centos
[root@ip-10-1-0-142 ~]# docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 6659 [OK]
ansible/centos7-ansible Ansible on Centos7 134 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 129 [OK]
jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 118 [OK]
centos/systemd systemd enabled base container. 100 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 90
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 58 [OK]
tutum/centos Simple CentOS docker image with SSH access 48

镜像加载

docker load -i <image.name>

拉取镜像

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] docker pull centos:latest

列出镜像

$ docker images ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 08b152afcfae 4 days ago 133MB
centos latest 300e315adb2f 7 months ago 209MB

中间层镜像

$ docker image ls -a

  • 为了加速镜像构建、重复利用资源,Docker 会利用 中间层镜像。所以在使用一段时间后,可能会看到一些依赖的中间层镜像。默认的 docker image ls 列表中只会显示顶层镜像,如果希望显示包括中间层镜像在内的所有镜像的话,需要加 -a 参数。

删除本地镜像

如果要删除本地的镜像,可以使用 docker image rm 命令
$ docker image rm [选项] <镜像1> [<镜像2> ...]
[root@ip-10-1-0-142 ~]# docker rmi nginx
Untagged: nginx:latest
Untagged: nginx@sha256:8f335768880da6baf72b70c701002b45f4932acae8d574dedfddaf967fc3ac90
Deleted: sha256:08b152afcfae220e9709f00767054b824361c742ea03a9fe936271ba520a0a4b
Deleted: sha256:97386f823dd75e356afac10af0def601f2cd86908e3f163fb59780a057198e1b
Deleted: sha256:316cd969204ae854302bc55c610698829c9f23fa6fcd4e0f69afa6f29fedfd68
Deleted: sha256:dcec23d16cb7cdbd725dc0024f38b39fd326066fc59784df92b40fc05ba3728f
Deleted: sha256:1e294000374b3a304c2bfcfe51460aa599237149ed42e3423ac2c3f155f9b4a5
Deleted: sha256:c0d318592b21711dc370e180acd66ad5d42f173d5b58ed315d08b9b09babb84a
Deleted: sha256:814bff7343242acfd20a2c841e041dd57c50f0cf844d4abd2329f78b992197f4

镜像体积

可以通过docker system df 命令来便捷查看images containers volumes所占用的空间
[root@ip-10-1-0-142 ~]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 2 1 342.5MB 133.2MB (38%)
Containers 1 1 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B

运行容器

docker run -it --rm centos:latest bash docker run -itd centos:latest /bin/sh -c "while true;do echo hello world;sleep 1;done"

参数介绍:

  • -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
  • --rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。
  • ubuntu:18.04:这是指用 ubuntu:18.04 镜像为基础来启动容器。
  • bash:放在镜像名后的是 命令,这里我们希望有个交互式 Shell,因此用的是 bash。

开机自动重启

docker run --restart=always -itd --name webserver nginx:latest bash

  • --restart=always 在容器退出时总是重启容器
    • image.png

查看日志

[root@ip-10-1-0-142 ~]# docker logs 11af8dfdaee5
hello world
hello world
hello world

查看容器所有运行

[root@ip-10-1-0-142 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11af8dfdaee5 centos:latest "bash -c 'while true…" 5 minutes ago Up 5 minutes amazing_burnell

查看容器(运行与睡眠&停止)

docker ps -a

相关文章

网友评论

      本文标题:Docker 介绍及基本使用 - 一

      本文链接:https://www.haomeiwen.com/subject/yxhpmltx.html