本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1. 镜像(Image)、容器(Container)、仓库(Repository)
镜像:相当于一个只读root文件系统,类比Java对象
容器:镜像运行的实体,类比Java对象的实例
仓库:用于保存镜像,类比代码仓库
2. 每个仓库(Registry)可以包含多个仓库(Repository)及标签(Tag),每个标签对应一个镜像,可以通过<仓库名:标签>来表示不同版本的镜像。
3. 安装Docker:安装成功后运行docker --version验证(简写docker -v)
1)Linux安装:不同的发行版Linux安装各不相同
2)Mac安装:
① 手动安装:下载安装包和普通软件安装一样,载入安装包后拖拽到Applications中即可;
② 命令安装:brew cask install docker
3)Windows安装:需要使用docker toolbox安装,Win7、Win8:mirrors.aliyun.com/docker-tool…,一直下一步安装,安装完后Docker Quick Start即为Docker命令环境,Win10有专业系统安装包,需要开启Hyper-V(应用和功能→启用或关闭Windows功能→Hyper-V勾选),下载toolbox:www.docker.com/get-docker,一直下一步安装。
4. Docker镜像加速
1)镜像加速库很多:官方提供的国内加速:registry.docker-cn.com,七牛云加速:reg-mirror.qiniu.com
2)配置:Linux修改配置文件,Mac和Windows打开Docker设置的Daemon添加Registry-mirrors即可。
3)检查配置是否生效:配置好后重启Docker,输入命令docker info可以看到新增的加速库即配置成功
5. 第一条命令Hello World
fay@Fay ~ % docker run -it ubuntu:15.1 /bin/echo "Hello World"
Hello World
# 运行Ubuntu镜像并执行echo命令输出指定内容,-i在容器内指定伪终端或终端 -t允许容器内标准输入交互
fay@Fay ~ % docker run -it ubuntu:15.1
root@571ca614fedb:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
# 启动并进入一个镜像Ubuntu系统交互
fay@Fay ~ % docker run -d ubuntu:15.1
459cba77e1b8ac8493bd4ec098737c90838a28d53fc9f1fa0bc059b8c5c7afe8
# 后台启动一个镜像Ubuntu系统
fay@Fay ~ % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7e04914ba07a ubuntu "/bin/bash" 10 seconds ago Up 9 seconds mystifying_chaplygin
# 查看容器运行情况:CONTAINER ID(容器ID)、IMAGE(使用的镜像)、COMMAND(启动时运行的命令)、CREATED(创建时间)、STATUS(状态)、PORTS(端口及连接类型TCP/UDP)、NAMES(自动分配的容器名称)
# 其中STATUS包括7种:created已创建、restarting重启中、running运行中、removing迁移中、paused暂停、exited停止、dead死亡
fay@Fay ~ % docker logs ebbd7453d2d5
root@ebbd7453d2d5:/# echo "Hello World"
Hello World
# 查看容器ID为ebbd7453d2d5的历史
fay@Fay ~ % docker stop b79498173c41
b79498173c41
# 结束容器ID为b79498173c41的容器