Docker学习笔记
Docker概述
核心思想,隔离,打包装箱,虚拟机属于虚拟化技术,容器技术也是虚拟化技术。
虚拟机技术特点:
1. 资源占用多
2. 冗余步骤多
3. 启动慢
容器内的应用直接运行在宿主机的内核,容器没有自己的内核。每个容器互相隔离,每个容器有自己的容器系统,互不影响。
Docker是内核级的虚拟化。
镜像:
Docker镜像,就好比一个模板,可以通过这个模板创建容器服务,通过这个镜像可以创建多个容器(最终服务运行或项目运行就是在容器中的)
容器:
Docker利用容器技术独立运行一个或一组应用,通过镜像来创建的。
仓库:
存放镜像的地方,分为公有仓库和私有仓库。
Doker为什么比WM快?
1. Docker有比虚拟机更少的抽象层
2. Docker利用的是宿主机的内核,VM需要Guest OS
3. 新建一个容器时,Docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导
常用命令
docker version
>>>
>Client: Docker Engine - Community
Version: 19.03.12
API version: 1.40
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:46:54 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.12
API version: 1.40 (minimum version 1.12)
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:45:28 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
镜像命令
docker search #搜素镜像
docker pull #下载镜像
docker rmi -f $(docker image -aq) #删除镜像
容器命令
Docker容器使用后台命令,必须要有一个前台进程。
docker run -it centos /bin/bash
docker ps
>>>
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c0d5fbb742d4 centos "/bin/bash" 52 minutes ago Up 52 minutes eloquent_mirzakhani
docker exec -it c0d5fbb742d4 /bin/bash
docker attach c0d5fbb742d4
docker cp c0d5fbb742d4:/home/hello.py /home
查看日志,后台启动,进入当前正在运行的容器,从容器拷贝文件到主机等命令。