Docker使用手册

Docker概述

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

Docker原理图

在这里插入图片描述
Docker Engine:Docker引擎,Docker提供服务程序组件。
Docker Images:创建Docker容器所需要的基础组件。
Docker Container:Docker容器,运行应用(CMS、UP等等)的环境。

Docker安装

安装时需要宿主机处于联网状态
安装Docker Engine
Docker Engine需要使用root用户进行安装,依次执行如下命令:

  1. yum install docker
    安装Docker
  2. service docker start
    启动Docker
  3. chkconfig docker on
    随系统启动自动启动

加载Docker镜像

基础镜像(基础镜像已经制作好)存放位置/home/maoc/images目录下,安装部署时需要依据自己所在目录,此处列出便于理解以下命令:

  1. cat /home/maoc/images/ centos-jboss-61-150624.tar | docker import - centos_jboss_test:v1.0
    加载一个镜像(包含ssh服务及jboss服务的镜像)到Docker中,并且将镜像的名称设置为centos_jboss_test,将镜像的tag设置为v1.0;名称和Tag值用冒号分隔
  2. docker images
    查看docker中的所有镜像信息

创建Docker容器

命令如下:

  1. docker run -d -p 8180:8080 -p 223:222 centos_jboss_test:v1.0 /run.sh
    依据centos_jboss_test:v1.0镜像创建一个容器,-d代表容器启动后进入后台,-p表示宿主机和容器端口映射,/run.sh表示启动容器时自动运行容器根目录中run.sh文件
    -p 8180:8080表示将宿主机的8180端口映射到镜像对应容器中的8080端口;-p 223:222表示将宿主机的223端口映射到镜像对应容器中的222端口;8080端口指的是镜像所起容器中jboss服务器端口,222位镜像所起的容器对应的ssh服务端口;一个宿主机端口只能映射一个docker容器对应的端口,不能同时映射多个。
  2. docker ps
    查看所有正在运行的Docker容器信息
  3. docker ps –a
    查看Docker中所有容器信息
  4. 访问jboss
    http://宿主机IP:8180/

使用Docker容器

进入容器
使用xShell工具进入docker容器中完成相应的应用软件的部署,如下图

部署应用
通过xShell工具进入docker容器中后,应用的部署和远程在服务器上部署应用形式一样,此处不再详细说明。
应用部署完毕后,可以通过docker导出容器命令将应用所在的容器导出成镜像文件,然后通过docker导入容器命令将其导入到镜像中去形成新的镜像。

Docker常用命令

基础命令

  1. 启动docker
    service docker start

  2. 停止docker
    service docker stop

镜像操作命令

  1. 查看docker中所有的镜像信息
    docker images

  2. 导入镜像到docker中
    cat 镜像文件地址 | docker import - 镜像名称:镜像tag信息
    cat /home/maoc/centos-sshd-222-150623.tar | docker import - centos_base_test:v1.0

  3. 导出docker中的镜像到本地目录中
    docker save –o 保存文件地址 导出的docker镜像名称:导出的docker镜像tag值
    docker save –o /home/maoc/centos_base_test.tar centos_base_test:v1.0
    说明: 导出的镜像tar文件中包含了镜像的元数据信息

  4. 导入docker中导出的镜像文件(用docker save命令导出的镜像文件)
    docker load --input 镜像地址
    docker load --input /home/maoc/centos_base_test.tar或docker load < 镜像地址docker load < /home/maoc/centos_base_test.tar说明:导入镜像tar文件中包含了镜像的元数据信息,导入时会覆盖掉docker中已存在的镜像

  5. 删除docker中的镜像
    docker rmi 镜像名称:镜像tag值
    docker rmi centos_base_test:v1.0

容器操作命令

  1. 依据docker镜像创建docker容器
    docker run -d -p 宿主机端口:docker容器映射端口 docker镜像名称:docker镜像tag信息 自动运行的shell脚本文件地址(镜像中的地址)
    docker run -d -p 8080:8080 -p 222:222 centos_jboss_test:v1.0 /run.sh
    说明:-d标识在后台运行docker容器
    -p端口映射,将宿主机的端口映射到docker容器中,如果一个宿主机上有多个docker容器,则一个宿主机的端口不能同时映射多个docker容器端口;多个端口映射可以通过多个-p参数设定
    centos_jboss_test:v1.0表示docker容器创建所依赖的docker镜像
    /run.sh 表示docker容器创建完毕后自动执行的shell命令文件

  2. 查看docker容器信息
    docker ps -a

  3. 查看运行中的docker容器信息
    docker ps

  4. 停止运行docker容器
    docker stop docker容器标识
    docker stop 8c914bb46ae5
    说明:docker容器标识可以通过 docker ps -a 获取到

  5. 启动已停止的docker容器
    docker start docker容器标识
    docker start 8c914bb46ae5
    说明:docker容器标识可以通过 docker ps -a 获取到

  6. 重启运行中的docker容器
    docker restart docker容器标识
    docker restart 8c914bb46ae5
    说明:docker容器标识可以通过 docker ps -a 获取到

  7. 导出docker容器
    docker export docker容器标识 > 文件存放地址
    docker export 8c914bb46ae5 > /home/maoc/centos_jboss_test_container.tar
    说明:docker容器标识可以通过 docker ps -a 获取到

  8. 导入docker容器文件到docker镜像中
    cat docker容器文件地址 | docker import - 镜像名称:镜像tag信息
    cat /home/maoc/centos_jboss_test_container.tar | docker import - centos_jboss_test:v1.0

  9. 删除docker容器
    docker rm –f docker容器标识
    docker rm -f 8c914bb46ae5
    说明:docker容器标识可以通过 docker ps -a 获取到
    -f表示如果容器处于运行状态也要删除,如果不带-f参数只能删除非运行中的docker容器

  10. 进入容器
    docker exec -it 775c7c9ee1e1 /bin/bash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值