docker

1、docker简介

Docker 是一个开源的 应用容器引擎 ,基于 Go 语言开发。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻 量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互 之间不会有任何接口(类似 iPhone app , 更重要的是容器性能开销极低。

1.1、Docker应用场景

  1. Web 应用的自动化打包和发布
  2. 自动化测试和持续集成、发布
  3. 在服务型环境中部署和调整数据库或其他的后台应用
使用 Docker 可以实现开发人员的开发环境、测试人员的测试环境、运维人员的生产环境的一致性
docker_第1张图片
​​​​​​​ docker_第2张图片

 

2、Docker的组成部分

docker_第3张图片

名称 说明
Docker 镜像
(Images)
Docker 镜像是用于创建 Docker 容器的模板。 镜像是基于联合文件系统的一种层式结构,
由一系列指令一步一步构建出来。
Docker 容器
(Container)
容器是独立运行的一个或一组应用。 镜像相当于类,容器相当于类的实例
Docker 客户端
(Client)
Docker 客户端通过命令行或者其他工具使用 Docker API Docker 的守护进程通信。
Docker 主机
(Host)
一个物理或者虚拟的机器用于执行 Docker 守护进程和容器
Docker 守护进
Docker 服务器端进程,负责支撑 Docker 容器的运行以及镜像的管理。
Docker 仓库
DockerHub
(Registry)
Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。 Docker Hub 提供了庞大
的镜像集合供使用。用户也可以将自己本地的镜像推送到 Docker 仓库供其他人下载。

 3、docker 安装

安装
# 1、yum 包更新到最新 
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y 
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v

 4、docker 启动与停止命令

# 启动docker服务: systemctl start docker 
# 停止docker服务: systemctl stop docker 
# 重启docker服务: systemctl restart docker
# 查看docker服务状态: systemctl status docker 
# 设置开机启动docker服务: systemctl enable docker

5、docker常用命令

5.1、查看镜像

# 查看镜像可以使用如下命令: docker images

REPOSITORY :镜像名称
TAG :镜像标签
IMAGE ID :镜像 ID
CREATED :镜像的创建日期
SIZE :镜像大小

5.2、搜索镜像

# 如果你需要从网络中查找需要的镜像,可以通过以下命令搜索:
                                                       docker search 镜像名称

docker_第4张图片

NAME :镜像名称
DESCRIPTION :镜像描述
STARS :用户评价,反应一个镜像的受欢迎程度
OFFICIAL :是否官方
AUTOMATED :自动构建,表示该镜像由 Docker Hub 自动构建流程创建的

5.3、拉取镜像

# 拉取镜像就是从Docker仓库下载镜像到本地,镜像名称格式为 
  名称:版本号,如果版本号不指定则是最新的版本 命令如下:
  格式为: docker pull 镜像名称
# 如拉取centos7; docker pull centos:7

 5.4、删除镜像

# 可以按照镜像id删除镜像,命令如下:
                                 docker rmi 镜像id
#删除docker上的所有镜像,命令如下:
                                docker rmi `docker images -q`
#强制删除镜像
                                docker rmi  -f  dockerimageID

docker_第5张图片

6、容器相关命令

        容器,也是docker 中的核心概念,容器是由镜像运行产生的运行实例。镜像和容器的关系,就如 Java 语言中类和对 象的关系。

6.1、查看容器

查看正在运行的容器使用命令:docker ps
查看所有容器使用命令:docker ps -a

 6.2、创建并启动容器

参数说明:

-i:表示运行容器

-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。

--name :为创建的容器命名。

# 可以按照镜像id删除镜像,命令如下: docker rmi 镜像id 12

-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件

映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。

-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。

-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

6.2.1、交互式容器

         docker交互式容器(启动容器之后会直接进入容器的命令行终端、如果退出(exit)则容器停止运行)

#创建并启动名称为 mycentos7 的交互式容器;
下面指令中的镜像名称 centos:7 也可以使用镜像id :                              
                    
                          docker run -it --name=mycentos7 centos:7 /bin/bash  


#/bin/bash 
后面的/bin/bash的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,
要不然整个容器启动后就会马上kill itself,这个/bin/bash就表示启动容器后启动bash。

 6.2.2、守护式容器

创建一个守护式容器;如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。命令如下(容器名称 不能重复):
#创建并启动守护式容器 :
            docker run -di --name=mmysql msyql:5.7
#登录进入容器命令为:
          例子:  docker exec -it container_name (或者 container_id) /bin/bash
(exit退出 时,容器不会停止) 
            docker exec -it mmysql /bin/bash

6.3、停止并启动容器

# 停止正在运行的容器:
docker stop 容器名称或者ID docker stop myos2
 

# 启动已运行过的容器:
docker start 容器名称或者ID docker start myos2

6.4、查看容器信息

docker inspect 容器名称

6.5、文件拷贝

6.5.1、文件拷贝到容器

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

6.5.2、文件拷贝出容器

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

7、Dockerfile

命令 作用
FROM 镜像名称:标签 定义了使用哪个基础镜像启动构建流程
MAINTAINER 名字 声明镜像的创建者
ENV key value 设置环境变量
RUN command 是Docker的核心部分(可以写多条)
ADD 源目录文件
家目录文件
将宿主机的文件复制到容器中
如果是一个压缩文件将会在复制后自动解压
COPY 源目录文件
家目录文件
和ADD相似,但如果有压缩文件不能解压
WORKDIR 目录名称 设置工作目录
EXPOSE 保留端口配置
EMTRYPOINT 指定这个容器启动的时候要运行的命令,可以追加命令
CMD 指定这个容器启动的时候要运行的命令(只有最后一个会生效)
ONBUILD 当构建一个被继承DockerFile,这个时候就会运行ONBUILD的指令,触发指令
 

你可能感兴趣的:(容器,docker,容器,linux)