一、安装篇
- 前提条件
- Docker 运行在 CentOS 7,Ubuntu 14.04,debian 8等系统版本以上,要求系统为64位、系统内核版本为 3.10 以上。
- Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。(此版本只能使用docker.io,新版本docker已经更名为docker-ce)
- 查看linux内核版本
uname -r
-
安装 Docker
curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun
-
查看docker指令帮助
docker help
-
查看docker版本
docker –version
二、操作篇
-
启动 Docker 后台服务
systemctl start docker
-
运行hello-world
docker run hello-world
-
查询远程官方仓库的centos镜像列
docker search centos
-
拉取官方镜像到本地
docker pull centos:7.0
-
根据dockerfile 创建一个新镜像(Dockerfile 是一个文本文件,包含了一条条的指令(Instruction),每条指令都会构建一层)
docker build -t imageName:TAG . -f jdkdockerfile
-
复制文件进某容器中
docker cp test.jar containerID:/usr/local/
-
新建并启动一个容器,-t选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上,-i则让容器的标准输入保持打开。后台运行可使用-d参数,启动后会返回一个唯一id。
docker run -t -i -d imageName:TAG
-
查询容器的日志
docker logs [container ID or NAMES]
-
启动已终止容器(状态为existed)
docker start [container ID or NAMES]
-
进入容器内部,操作容器
docker exec -it [containerID] [command] #进容器的command 一般为bash或sh
-
终止容器
docker stop [containerID]
-
在容器内部停止容器,等同exist
ctrl + d
-
显示容器
docker ps -a
-
删除容器
docker rm [containerID]
三、Docker Hub
目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了数量超过 3,016,000 个镜像。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。
- 拉取镜像仓库镜像
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
四、Docker三剑客,后续更新
- Docker Compose
- Docker Machine (docker-ce中不推荐使用)
- Docker Swarm
五、底层实现
- Docker 底层的核心技术包括 Linux 上的命名空间(Namespaces)、控制组(Control groups)、Union 文件系统(Union file systems)和容器格式(Container format)。
六、CI/CD 持续集成/部署(GitHub + Drone )
- 持续集成(Continuous integration)是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
- 持续部署(continuous deployment)是通过自动化的构建、测试和部署循环来快速交付高质量的产品。与Jenkins不同的是,基于 Docker 的 CI/CD 每一步都运行在 Docker 镜像中,所以理论上支持所有的编程语言。