- Docker
- 一、概述
- 二、核心概念
- 三、Docker的安装
- 四、常用命令
- 4.1 帮助命令
- 4.2 镜像命令
- 4.3 容器命令
- 五、Docker镜像
- 5.1 概述
- 5.2 镜像commit命令
-
Docker是一个开源的应用容器引擎
-
Docker支持将软件编译成一个镜像,然后在镜像中做好各种软件的配置,将镜像发布出去,其他使用者可以直接使用镜像,而不需要进行配置
-
运行中的镜像称为Docker容器,容器启动的速度非常快
- 概念
- docker主机(host):安装了Docker程序的机器(Docker直接安装在操作系统之上)
- docker客户端(Client):连接docker主机进行操作
- docker仓库(Registry):用来保存各种打包好的软件镜像
- docker镜像(Images):软件打包好的镜像;放在docker仓库中
- docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
- 使用步骤
- 安装Docker
- 去Docker仓库中找到这个软件对应的镜像
- 使用Docker运行这个镜像,这个镜像就会生成一个Docker容器
-
Ubuntu下安装docker
-
因为apt官方仓库docker版本比较陈旧,所以先卸载可能存在的旧版本
sudo apt-get remove docker docker-engine docker-ce docker.io
-
更新apt索引
sudo apt-get update
-
安装以下可以通过HTTPS使用存储库(repository)
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
-
为了确认所下载软件的合法性,需要添加软件源的GPG秘钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
安装存储库
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu artful stable"
-
安装最新版的Docker CE
sudo apt-get install -y docker-ce
-
查看docker服务是否启动
systemctl status docker
-
使用命令启动
sudo systemctl start docker
# 版本 docker version # 信息描述 docker info # 帮助命令 docker --help4.2 镜像命令
# docker上可以运行的镜像模板 docker images # REPOSITORY:镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像ID CREATED:镜像创建时间 SIZE:镜像大小
-
选项
-a:列出本地所有镜像
-q:只显示镜像ID
–digests:显式镜像的摘要信息
–no-trunc:显式完整的镜像信息
# 查找某个镜像 docker search [镜像名]
-
选项
–no-trunc:显式完整的摘要信息
# 下载镜像,TAG可省略 docker pull [镜像名:TAG] # 删除某个镜像 docker rmi [镜像名或ID] # 可以删除多个镜像,镜像名之间以空格隔开 docker rmi -f 多个镜像名 # 删除所有镜像 docker rmi -f $(docker images -qa)
-
选项
-f:强制删除
# 运行一个容器 docker run [OPTIONS] IMAGES [COMMAND] [ARG ...]
-
选项
–name:为容器指定一个名称
-d:后台运行容器,并返回容器ID,即启动守护式容器
-i:以交互模式运行容器,通常和-t同时使用
-t:为容器重新分配一个伪终端
-P:随机端口映射
-p:指定端口映射:ip:hostPort:containerPort;ip::containerPort;hostPort:containerPort;containerPort
# 列出正在运行的容器 docker ps
-
选项
-a:列出当前运行的和已经退出的容器
-l:列出最近运行过的容器
# 以交互的方式运行容器 docker run -it centos # 退出容器(容器变为down状态) exit # 离开容器(容器依然是Up状态) ctl+p+q # 重启容器 docker restart [容器ID] # 停止容器 docker stop [容器ID] # 删除容器 docker rm [容器ID] # 以守护方式启动容器 docker run -d [容器名或ID] # 查看日志 docker logs -f -t --tail [容器ID]
-
选项
-t:加入时间戳
-f:跟随最新的日志打印
–tail [数字]:显式最后多少条
# 查看容器内部运行的进程 docker top [容器ID] # 查看容器的内部细节 docker inspect [容器ID] # 进入正在运行的容器并且以命令行交互 docker exec [容器ID] [可以跟要执行的命令:例如 ls] # 文件拷贝 docker cp 容器ID:容器内路径 目的主机路径五、Docker镜像 5.1 概述
镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需要的所有内容。Union文件系统是Docker镜像的基础。Union文件系统时一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层一层的叠加,同时可以将不同的目录挂载到同一个虚拟文件系统的下。
- 特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的
文件系统会包含所有底层的文件和目录。 - 特点:docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像顶部。这一层通常称为“容器层”,“容器层”之下的都叫
“镜像层”。
docker commit:提交容器副本,使之成为一个新的镜像 docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签]



