curl -fsSL https://get.docker.com/ | sh #在线安装docker 程序
docker version #查看版本 检测安装是否完成
systemctl start docker.service #启动docker
systemctl stop docker.service #停止docker
systemctl restart docker.service #重启docker
systemctl status docker.service #查看docker状态
docker search httpd #在Docker Hub 网站搜索httpd的容器
其中:NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否docker官方发布用
docker pull httpd #从Docker Hub下载httpd镜像
docker tag IMAGEID REPOSITORY:TAG #添加或修改镜像tab
docker port [ID或者名字] # 查看容器的某个确定端口映射到宿主机的端口号
docker logs [ID或者名字] #可以查看容器内部的标准输出
docker rundocker run [OPTIONS] IMAGE [COMMAND] [ARG…]
启动镜像生成容器,容器依赖于对应的镜像
相关参数如下:
eg:
docker run -t -i centos7-base:latest /bin/bash 使用latest镜像启动容器
• -i :开启了input(输入)功能
• -t: 开启了一个连接容器里边的terminal(终端)
docker run -d -P centos7-base:latest /bin/bash
• -d:让容器在后台运行 ,仅限于启动全新的容器,启动关闭的容器是不可以的。
• -P:将容器内部使用的网络端口随要分配到主机上
docker run -d -P centos7-base:latest /bin/bash
• -d:让容器在后台运行 ,仅限于启动全新的容器,启动关闭的容器是不可以的。
• -P:将容器内部使用的网络端口随要分配到主机上
docker run -v /data1:/cdata centos7-base:latest /bin/bash
docker run --name oraclient centos7-base:latest /bin/bash
docker run -dit -p 8022:22 --name oracle –privileged centos7-base /bin/bash
docker ps #查看正在运行的容器
docker ps -a #查看所有容器,包括停止运行的
docker start [container ID]|names #重启启动停止的容器
docker stop [container ID]|names #关闭启动停止的容器
docker rmi [ID]
#移除不需要的镜像,不能删除有子镜像的镜像,不能删除有依赖于该镜像的容器的镜像
docker rm [ID或者名字]
#移除不需要的容器(容器终止后,在需要的时候可以重新启动,确定不需要了,可以进行删除操作。)
docker rm $(docker ps -a -q)
#一次性删除所有容器
可在docker run 启动时 使用 --rm参数 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
docker exec -it [容器id] /bin/bash #新建bash终端进入正在运行的docker容器
docker attach [容器id]
#直接进入容器当前终端 当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。
1、docker commit 实现
docker commit -m=“提交的描述信息” -a=“作者” 容器id 要创建的目标镜像名:[标签名]
#正在运行的容器,做完变动后,可使用该命令将当前状态的提交生成镜像
2、通过Dockerfile文件实现
Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。
docker build [OPTIONS] PATH
eg:docker build -f /path/to/a/Dockerfile
方法一
镜像文件导出
docker export 镜像id > 镜像文件名称.tar 导出镜像文件到当前终端目录下
镜像文件导入
docker import - 仓库名称:tab < 镜像文件名称.tar
方法二
镜像文件导出
docker save -o 镜像文件名称.tar 镜像id
镜像文件导入
docker load -i 镜像文件名称.tar
load 和 import 区别
1)load 是用来导入镜像存储文件到本地镜像库
2)import 是导入一个容器的快照到本地镜像库
3)容器快照文件(import)将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),从容器快照文件导入时可以重新指定标签等元数据信息。
4)镜像存储文件(load)将保存完整记录,体积也要大
需要注意两种方法不可混用。
如果使用import导入save产生的文件,虽然导入不提示错误,但是启动容器时会提示失败,会出现类似"docker: Error response from daemon: Container command not found or does not exist"的错误。
1、docker run -dit -p 8022:22 centos7-base /bin/bash #后台启动容器
2、docker exec -it [容器id] /bin/bash #进入容器
3、/usr/sbin/sshd #启动ssh服务
4、然后即可通过宿主机的8022端口ssh工具访问该docker容器
1、tar --numeric-owner --exclude=/proc --exclude=/sys -cvf centos7-base.tar /root 创建自己的基础镜像,放置于/root目录下
2、cat centos7-base.tar | docker import - centos7-base 将制作的centos导入,并命名为:centos7-base