Docker是什么?

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

以下不包括Docker的下载安装,但你想几分钟就使用和熟练了解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    (推荐)进入容器,退出容器时容器不会停止