1、docker三大概念
1.镜像:镜像是启动容器的模板
2.容器:是对外提供服务的实例
3.仓库(Harbor):存放镜像的地方
2、docker和虚拟机之间的区别
docker设计小巧,部署迁移快速,运行高效,应用之间相互独立,管理人员可以看到所有容器的内容,虚拟化技术比较臃肿,不论什么应用都需要先创建新的系统,并且并非按照应用隔离,而是按照系统隔离,管理员无法看到系统内部信息。
3、镜像
镜像是启动容器的模板,同一个镜像启动所有的容器完全相同。
1.下载镜像
docker pull [仓库的URL]/[命名空间]/[镜像名称]:[版本号]
默认的仓库URL:https://index.docker.io/v1/
默认的命名空间:library
默认的版本号:latest
2.从dockerhub查找镜像
[root@docker ~]# docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 6949 [OK]
ansible/centos7-ansible Ansible on Centos7 135 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 132 [OK]
jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 121 [OK]
centos/systemd systemd enabled base container. 105 [OK]
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 58 [OK]
说明:
NAME:镜像仓库源的名称
DESCRIPTION:镜像的描述
STARS:类似Github 里面的star,表示点赞、喜欢的意思。
OFFICIAL:是否 docker官方发布
AUTOMATED:自动构建。
3.下载镜像
[root@docker ~]# docker pull centos
4.查看本地镜像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 5d0da3dc9764 3 months ago 231MB
说明:
REPOSITORY :仓库名
TAG :版本
IMAGE ID :镜像ID
CREATED :创建距离现在的时间
SIZE :大小
5.把镜像做成离线压缩包
[root@docker ~]# docker save -o centos.tar.gz centos
6.删除镜像
[root@docker ~]# docker rmi -f centos:latest
7.解压离线镜像包
[root@docker ~]# docker load -i centos.tar.gz
4、容器
1.容器声明周期
容器内的进行至少有一个进程运行在前台。
2.启动一个容器
docker run [参数] [镜像名称|ID] [启动命令]
参数:
-d : 以守护进程方式运行
--rm : 当容器生命周期结束时,立即删除该镜像
--name : 指定容器名称
-e : 指定容器内部的环境变量
-h : 指定容器的主机名
-p : 端口映射(固定)
-P : 端口映射(随机)
-i : 打开标准输出(将容器内部的标准输出接入到命令行中)
-t : 创建一个命令行(伪终端)
-v : 添加一个目录映射
‘
# 查看本机运行的容器列表
docker ps [参数]
-a:显示本机上的所有容器
-q:只显示ID
# 在容器内部执行命令
docker exec [容器名称] [命令]
docker rm [容器ID或名称]
-f:强制删除
3.以交互式方式启动并进入容器
[root@docker ~]# docker run --name=test1 -it centos /bin/bash
注:输入exit 退出容器,退出之后容器也将停止,不会在前台运行
4.以守护进程方式启动容器
[root@docker ~]# docker run --name=test1 -td centos
[root@docker ~]# docker ps | grep test2
5. -d 在后台运行 docker
[root@docker ~]# docker exec -it test2 /bin/bash
6.查看正在运行的容器
[root@docker ~]# docker ps
[root@docker ~]# docker ps -a # 查看所有容器,包括运行和退出的容器
up:正在运行
Exited:已退出
7.停止容器
[root@docker ~]# docker stop test2
[root@docker ~]# docker ps -a
8.启动已停止的容器
[root@docker ~]# docker start test2
9.进入容器
[root@docker ~]# docker exec -it test2 /bin/bash
10.删除容器
root@docker ~]# docker rm -f test2
11.查看帮助命令
root@docker ~]# docker --help