Docker

一、简介

1.1 Docker简介

Docker是一个开源的容器引擎,它可以帮助我们更快地交付应用。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用Docker,可更快地打包、测试以及部署应用程序,并可减少从编写到部署运行代码的周期。

Docker官方网站:https://www.docker.com/

1.2 Docker版本

  • Docker(企业版)

Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的、经过认证的容器和插件。

  • Docker(免费版)

Docker CE是免费的Docker产品的新名称,Docker CE包含了完整的Docker平台,非常适合开发人员和运维团队构建容器APP

1.3 Docker架构

在这里插入图片描述

  1. Docker daemon(Docker守护进程)

Docker daemon是一个运行在宿主机(DOCKER_HOST)的后台进程。我们可通过Docker客户端与之通信。

  1. Client(Docker客户端)

Docker客户端是Docker的用户界面,它可以接受用户命令和配置标识,并与Docker daemon通信。图中,docker build等都是Docker的相关命令。

  1. Images(Docker镜像)

Docker镜像是一个只读模板,它包含创建Docker容器的说明。它和系统安装光盘有点像——我们使用系统安装光盘安装系统,同理,我们使用Docker镜像运行Docker镜像中的程序。

镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含
运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

  1. Container(容器)

容器层是可写的。容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。我们可通过Docker API或者CLI命令来启停、移动、删除容器。

  1. Registry(仓库)

Docker Registry是一个集中存储与分发镜像的服务。我们构建完Docker镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,我们就需要手动拷贝。此时,我们可借助Docker Registry来避免镜像的手动拷贝。

一个Docker Registry可包含多个Docker仓库;每个仓库可包含多个镜像标签;每个标签对应一个Docker镜像。这跟Maven的仓库有点类似,如果把Docker Registry比作Maven仓库的话,那么Docker仓库就可理解为某jar包的路径,而镜像标签则可理解为jar包的版本号。

二、安装

2.1 下载Docker-CE rpm安装包

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

注意下载版本要和操作系统版本对应。

docker-ce-18.06.0.ce-3.el7.x86_64.rpm

2.2 安装与启动

上传 docker-ce-18.06.0.ce-3.el7.x86_64.rpm 到opt

执行命令: yum install -y docker-ce-18.06.0.ce-3.el7.x86_64.rpm

注意:确保linux服务器处于联网状态。

启动与停止:

  • 启动docker:systemctl start docker
  • 停止docker:systemctl stop docker
  • 重启docker:systemctl restart docker
  • 查看docker状态:systemctl status docker

执行docker info可以查看是否安装成功

配置镜像加速器:
阿里云控制台:https://cr.console.aliyun.com/cn-beijing/instances/mirrors

重启docker守护程序

systemctl daemon-reload

重启docker服务

systemctl restart docker

查看docker容器信息

docker info

查看最后倒数第二行出现如下内容说明配置成功

Registry Mirrors:
https://j4pan1gm.mirror.aliyuncs.com/

三、常用命令

3.1 镜像常用操作

  1. docker pull 镜像名称:版本标签:下载镜像
    例:docker pull tomcat:8.5.57-jdk8-openjdk-slim,不指定版本标签则会下载最新的

  2. docker images: 查看本地所有镜像

  3. docker rmi tomcat:8.5.57-jdk8-openjdk-slim :删除镜像,没有创建容器才能删除。(也可以在 rmi 后面加上-f强制删除,但是不会完全删除)

  4. docker save -o 保存路径和保存名 镜像定位:保存镜像
    例:docker save -o /root/tomcat.tar tomcat:8.5.57-jdk8-openjdk-slim

  5. docker load -i 备份镜像的路径: 把保存的镜像备份文件恢复成镜像
    例:docker load -i tomcatByName.tar

3.2 容器常用命令

容器是通过镜像创建的

  1. docker run 选项 镜像定位
-i  运行容器 (必选)

-d  表示守护的方式执行容器 (必选)

--name 自定义容器名 (必选)

-p  系统的端口:容器的端口

例:docker run -di --name tomcat1 tomcat:8.5.57-jdk8-openjdk-slim,后面再加上/bin/bash可以创建后直接进入容器。
docker run -di --name redis -p 16379:6379 redis:4.0.8 创建redis容器

  1. 列出容器:
docker ps  # 列出正在运行的容器
docker ps -a  # 列出全部容器
docker ps -q  # 只列出容器编号
  1. 启动容器
docker start 容器的name或编号
  1. 重启容器
docker restart  容器名称或者容器编号
  1. 停止容器
docker stop 容器的name或编号
  1. 强制停止容器
docker kill  容器名称或容器编号
  1. 进入到容器,容器必须启动才能进入
 docker exec -it tomcat1 /bin/bash
 
 exit  # 退出容器
  1. docker rm 容器name或id:删除容器

  2. docker inspect 容器name或id 查看容器的信息

  3. docker top 容器name或id:查看容器的进程信息

  4. 容器与主机之间的交互

    • 文件的赋值:
    docker cp 源文件 容器名称:复制之后在容器中的文件
    
    例:
    docker cp c1:/1.java  /root/2.java
    
    • 目录的挂载

四、Docker网络模式

在这里插入图片描述

bridge模式:使用--network bridge指定,默认使用docker0
host模式:使用--network host指定
none模式:使用--network none指定
container模式:使用--network container:NAME或者容器ID指定
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值