一、百度百科

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完成的docker有以下几个部分组成:

  • DockerClient 客户端
  • Docker Daemon 守护进程
  • Docker Image 镜像
  • Docker Container 容器

二、Docker安装

1、卸载Docker

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2、需要的安装包

yum install -y yum-utils

3、设置镜像仓库

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

用国内的

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新软件包索引

yum mackecache fast

4、安装Docker相关

ce社区版,ee企业版,推荐安装企业版

yum install docker-ce docker-ce-cli containerd.io

docker overlay实战_docker

5、启动Docker

systemctl start docker

6、使用docker version查看版本

docker overlay实战_docker overlay实战_02

7、启动hello world镜像

docker run hello-world

docker overlay实战_docker overlay实战_03

8、卸载

yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

三、run的流程和docker原理

1、run的流程

docker overlay实战_docker_04

2、docker原理

docker overlay实战_centos_05

3、docker为何比VM快?

  • Docker有着比虚拟机更少的抽象层
  • docker利用的是宿主机的内核,VM需要的是Guest OS。


四、Docker镜像常用命令



1、基本命令



docker version



docker info



docker 命令 --help #万能命令



docker images



docker overlay实战_Docker_06



解释:



  • REPOSITORY:镜像的仓库源



  • TAG:镜像的标签
  • IMAGE ID:镜像的ID
  • CREATE:镜像的创建时间
  • SIZE:镜像的大小



可选项



-a:列出全部的镜像



-q:只显示镜像的ID



2、搜索镜像



docker search



可选项



–filter-STATUS-3000 #搜索大于3000的



3、下载镜像



指定版本下载



docker pull 镜像名[:tag]



docker overlay实战_centos_07



4、删除镜像



docker rmi -f 镜像id



五、docker容器常用命令



1、下载容器



docker pull centos



2、docker run [可选参数] image



参数说明:



  • –name 容器名称



  • -d 后台方式运行
  • -it 使用交互方式运行,进入容器查看内容(例如:docker run -it centos /bin/bash)
  • -p 指定容器的端口号 -p 8080:8080(主机端口:容器端口)



3、列出所有的运行的容器



docker ps [参数]



  • -a 列出当前正在运行的容器



  • -n 显示最近创建的容器
  • -q 只显示容器的编号



例如:docker ps -aq 显示当前正在运行的容器的编号



4、退出容器



exit



5、删除容器



  • docker rm 容器id 不能删除正在运行的容器



  • docker rm -f $(docker ps -a) 删除所有的容器
  • docker ps -a -q|xargs docker rm 删除所有的容器



6、启动和停止容器



  • docker start 容器id



  • docker restart 容器id
  • docker stop 容器id
  • docker kill 容器id 强制停止



7、进入当前正在运行的容器



  • 方式一:docker exec -it 容器id /bin/bash 进入容器后开启一个新的终端(常用)



  • 方式二:docker attach 容器id 进入容器当前正在执行的终端.



8、从容器内拷贝文件到主机



docker cp 容器id:容器内路径 主机路径



例如:docker cp 容器id:/home/test.java /home



9、其它常用命令



(1)后台启动容器 -d



(2)查看日志命令



docker logs --help



显示指定行数的日志:



docker logs -tf --tail 10 容器id



-f:内容,,,-t:时间



例如:循环执行



docker run -d centos /bin/sh -c “while;do echo hello world;sleep 1;done”



(3)显示容器中的进行信息



查看docker内部的进程信息:docker top 容器id



(4)查看容器的元数据



docker inspect --help



显示容器的所有信息:



docker inspect 容器id



docker overlay实战_docker overlay实战_08



作者:萌褚