Java|通俗易懂的Docker (一篇文章就让你玩转)

Docker是什么? Docker一个运行环境部署好后,可一直重复使用的工具。
Docker的三个基本概念:镜像,容器,仓库

以下不包括Docker的下载安装,但你想几分钟就使用和熟练了解Docker,那么请继续往下看~
简单一句概括: 【Java|通俗易懂的Docker (一篇文章就让你玩转)】镜像 --> 容器;
镜像集中于仓库;
仓库中有镜像,镜像被容器使用。
(镜像中可以有多个组件,通过build自定义创建镜像,创建Dockerfile文件写入组件信息,如redis,php,mysql,python...)。


Docker Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
Docker Compose是用于定义和运行多容器 Docker 应用程序的工具。
Docker Machine是一种可以在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。

自定义Docker镜像,满足自己的开发环境需求方法:
  1. 先从Docker的公共库下载有部分软件环境的镜像,在其基础上,进入镜像,用命令下载需要的软件环境,利用commit生成新的镜像,提交容器副本;
  2. 编写Dockerfile文件,使用build生成镜像,后面如果需要其他软件环境,可用1的方法进入镜像,生成新的镜像。
简单的实例操作:
docker search redis'搜索redis版本' docker pull redis:latest'加载redis最新版本的镜像' docker images'查看本地镜像是否安装成功' docker run -itd --name redis_test -p 6379:1111 redis '使用镜像redis,运行容器名字为redis_test,容器端口1111(后)映射到本机端口(前)6379' docker ps'查看容器运行信息' docker exec -it redis_test /bin/bash'进入容器的终端,可查看容器中的redis版本' docker run --name phpAndredis -p 80:80 -d \ -v ~/nginx/www:/www \'将主机的目录/nginx/www挂载到容器的/www' -v ~/conf/conf.d:/etc/conf \ --link redis_test:redis \'把redis_test的网络并入下面的php' php


常见镜像操作:
docker images'显示本地的镜像' docker pull ubuntu:11'加载镜像' docker search httpd'查找镜像' docker rmi httpd'删除镜像' docker run -it ubuntu:11 /bin/bash'创建容器进入终端' apt-get update'更新镜像' docker commit -m="描述信息" -a="作者" 容器id 创建目标镜像名字'提交容器副本' docker build -t diy_centos .'自定义创建镜像,通过创建Dockerfile文件,写指令 -t创建的目标镜像名字,[.] Dockerfile文件所在目录' docker tag 容器id diy_centos:whiteV1'设置镜像标签'


常见容器操作:
docker ps -a'查看所有容器' docker start/stop/restart 容器id(例如:913791ibi31)'启动/停止/重启 对应id的容器' docker attach 容器id'进入对应id的容器,退出时停止容器' docker exec -it 容器id /bin/bash'进入对应id的容器,退出时不会停止容器' docker export 容器id > white.tar'导出本地容器到white.tar' cat docker/white.tar | docker import -test/ubuntu:v1.0'导入white为镜像,再导入到ubuntu镜像中' docker import http://white.com/white.tar test/ubuntu'指定url导入' docker rm -f 容器id'删除容器' docker port 容器id/name'查看容器端口映射情况' docker logs -f 容器id/name'查看容器的输出' docker network create -d bridge network_test'创建Docker网络' docker run -itd --name testANDnet --network network_test ubuntu /bin.bash'运行容器连接网络,设置两个容器则会建立互联关系'



部分命令说明
-i交互式操作 -t终端 -d容器后台运行,不进入容器 -P容器端口随机映射主机端口,主机端口随机 -p容器端口指定映射主机端口,主机端口自定 attach进入容器,退出容器时容器停止 exec(推荐)进入容器,退出容器时容器不会停止


    推荐阅读