目录
Docker安装
Docker安装要求
Centos 6 2.6.32版本以上 ,Centos7
#安装docker依赖包(epel)
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
#更新 yum 源
yum update -y1
#安装 docker-io 软件包来安装 Docker
yum -y install docker-io
# 启动 Docker 守护进程
service docker start
# Docker 在服务器启动时启动
chkconfig docker on
Docker配置阿里云镜像加速
-----------从国内公有镜像仓库拉取镜像,提高下载速度--------------
#使用支付宝账号登录阿里云,没有就创建一个
阿里云地址:https://www.aliyun.com/
#在阿里云控制台找到==》容器镜像服务
#点击容器镜像服务下的--》镜像加速,复制加速器地址
#编辑docker文件
vim /etc/sysconfig/docker
#配置other-args属性
other_args="--registry-mirror=复制的阿里云镜像加速器地址"
#保存退出
#重启docker服务
service docker restart
#检查是否配置成功
ps -ef|grep docker
tip:发现在配置文件里面的配置项代表配置成功
Hello Word 入门
查看当前能够运行的镜像
运行hello-world镜像打印
docker run hello-world
运行结果:
Docker交互式运行
Options选项
-t: 在新容器内指定一个伪终端或终端。
-i: 允许客户端在容器内进行交互式操作
Docker后台运行容器
[root@docker ~]# docker run -d centos
dd79cf746d40c04984842c1bf122f1ed9b118973de59266c1acda3b8fac681b0
Docker容器后台启动后,会返回一个容器ID,用于标识当前容器
Docker查看正在运行的容器
[root@docker ~]# docker ps
运行结果:
输出详情介绍:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:
- created(已创建)
- restarting(重启中)
- running(运行中)
- removing(迁移中)
- paused(暂停)
- exited(停止)
- dead(死亡)
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。
容器操作
查看正在运行的Docker容器
运行Docker容器
进入一个正在运行的Docker容器
停止一个Docker容器
重启一个Docker容器
删除一个Docker容器
批量停止/删除Docker容器
-a: 查询所有状态容器
-p: 只输出容器ID
Tips:删除容器前,必须先停止容器,否则会报错
导出容器到本地
导入容器快照文件为镜像
镜像使用
获取镜像列表
各个选项说明:
-
REPOSTITORY:表示镜像的仓库源
-
TAG:镜像的标签
-
IMAGE ID:镜像ID
-
CREATED:镜像创建时间
-
SIZE:镜像大小
拉取镜像
删除镜像
选项说明:
-f :强制删除
创建镜像
镜像存在2种创建的方式:
- 使用docker commit 命令根据容器创建镜像
- 根据DockerFile文件构建Docker镜像
Docker commit 命令
[root@docker docker-test]# docker commit -a "thh" -m "update build tomcat" a947a0e13e84 thh/mytomcat:v1
542ac591ec29de448990513ed2cbd6035585bd3f300f6a03ae9bd2afcf3c85d9
选项说明:
- -a:提交构建镜像的作者
- -m:镜像构建的描述
- a947a0e13e84:构建进行所需的目标容器Id
- thh/mytomcat:v1:镜像名称 + tag版本
根据DockerFile文件构建Docker镜像
构建DockerFile文件之前我们需要先了解,用于构建DockerFIle文件的相关指令有哪些
- COPY:复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
- ADD:ADD 指令和 COPY 的使用格式一致 ,add指令会自动复制并解压到 <目标路径>,而copy指令不会
- CMD:为启动的容器指定默认要运行的命令,程序运行结束,容器也就结束。CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖。
- ENTRYPOINT:类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖
- ENV:设置环境变量,定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。
- VOLUME:定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。
- EXPOSE:指定对外暴露的端口号
- WORKDIR:指定进入容器运行容器后默认的路径位置
编写DockerFile文件
#FROM 指定源镜像
FROM centos:latest
# 环境变量
ENV ROOTPATH /root
#默认进入的目录,使用环境变量
WORKDIR $ROOTPATH
#安装vim编辑器
RUN yum install -y vim
#安装net-tools , ifconfig
RUN yum install -y net-tools
#对外暴露80端口
EXPOSE 80
#打印输出
CMD echo "build docker sucess..............."
CMD /bin/bash
开始构建Docker镜像
打印Successfullly时,镜像表示构建成功:
运行构建的Centos:v1
使用ifconfig和vim命令,成功。