docker入门
学习docker,首先需要了解Docker的三个基本概念:
1、镜像(Image):类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。例如一个Ubuntu镜像就是一个包含Ubuntu操作系统环境的模板,同理在该镜像上装上Apache软件,就可以称为Apache镜像。
2、容器(Container):类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。
3、仓库(Repository):类似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与注册服务器(Registry)的区别:注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用tag进行区分,比如Ubuntu仓库存放有多个版本(12.04、14.04等)的Ubuntu镜像。
一、安装
1、win 10专业版\教育版\企业版
2、需要开启Hyper-V
3、下载docker
4、安装
成功:
在powerShell 中运行docker run hello-world
5、修改镜像下载地址
http://hub-mirror.c.163.com
二、常用命令
查看镜像是否存在
docker search centos
拉取镜像
docker pull centos # 拉取默认版本
docker pull centos:xxx # 拉取指定版本列出镜像
docker images # 列出所有镜像
docker images centos # 列出指定镜像创建容器
docker run --name card -it centos:latest /bin/bash
latest 为标签,使用者设置
–name card 表示为容器创建一个名为card
的别名
现在,我们就可以在容器下安装各种软件了,如安装python,只需要像在linux下直接使用yum install python
就行了进入容器
docker exec -it 容器别名\容器id bash
退出容器
在容器中输入exit就可以了
docker中运行的程序(容器)
docker ps -a
启动容器
当我们退出容器后,如果希望再次进入容器,那么通过容器id或别名重新启动容器docker start 容器id\别名
这个时候还不能进入bash页面,需要进行连接操作才能进入bash页面
docker attach 容器id\别名
创建镜像
docker commit -m "his" -a "lao" 2a47aef001b3 lao/card:1.0
-m 指定说明信息;
-a 指定用户信息;
2a47aef001b3 代表容器的id;
lao/card:1.0 指定目标镜像的用户名、仓库名和 tag 信息通过镜像进入容器
docker run -it lao/card:1.0 /bin/bash
创建完成镜像后,可以通过以上命令进入容器,
lao/card:1.0
便是我们再上一步配置的用户名、仓库名、tag信息停止容器
docker stop 2fdf00f2a22b # 2fdf00f2a22b 为容器id
docker stop $(docker ps -q) # 停止全部容器删除容器
docker rm 2fdf00f2a22b # 2fdf00f2a22b 为容器id
docker rm $(docker ps -aq) # 删除全部容器注意:容易需要停止才能删除
删除镜像
docker rmi xxxx # xxx 为镜像id
注意:删除镜像前,需要确保使用该镜像启动的容易已经被删除
查看错误容器日志
docker logs -f -t --tail # 实时查看日志
docker logs -f -t --tail 10 xxx # 实时查看xxx的最后10行日志
docker logs -f --details df_php_1 # tail -f 显示日志