扯淡:
上一章前言已经引入了docker最基本的概念,只需要弄懂 “docker从仓库中拿取镜像运行成可独立运行的容器” 这句话即可,本章将围绕这句话从安装 docker 开始构建一个可运行的容器。
Docker官网:https://www.docker.com/
GitHub地址:https://github.com/docker/docker
工具:
1、centos7.x(64 位)版的云服务器或虚拟机。
2、远程连接工具:xshell、secureCRT、putty等。
Docker安装:
Docker是基于Ubuntu发布的,docker的更新最先是在乌班图上发布补丁的,所以官方建议在Ubuntu系统上安装,而Ubuntu在嵌入式、python开发中用的比较多,java用的比较多的还是centos,centos6.x 版本支持的不太好,需要安装许多其他环境,所以本章将在centos7(64 位)上安装,可以在虚拟机上安装centos7.x,我使用的是阿里云服务器。
1、docker软件包都包含在centos-extras 软件源中,使用 yum 就可以安装。
# 安装命令
yum -y install docker
这里如果没有加 -y 到最后会有 “Is this ok [y/d/N] : ”让用户选择,输入 y 回车即可。
2、上一步完成之后可查看 docker 版本。
# 版本命令
docker -v
3、docker 安装完成并没有启动,相关基本命令
# 启动命令:
service docker start
# 停止命令:
systemctl stop docker
# 重启命令:
systemctl restart docker
# 开机启动:
systemctl enable docker
# 帮助信息:
docker --help
# 详细信息:
docker info
# docker状态:
systemctl status docker
docker启动:
docker状态:
4、docker 卸载:
# 卸载命令:
sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine
这样只会卸载docker本身,并没有删除它的相关文件(镜像、容器等)。我们需要手动删除 /var/lib/docker 下的文件。
镜像(Image):
1、配置镜像仓库地址
镜像是自己构建或者从远程仓库中拉取的,默认拉取镜像是到官方仓库上,由于国内网络的原因拉取镜像会非常慢,我们可以配置访问国内的镜像仓库,网易蜂巢(http://hub-mirror.c.163.com)、阿里云(自己注册获取,每个人的地址不同),ustc等,具体快慢取决自己的网络环境。
1.1、实验:
我利用几个知名的仓库地址拉取一个 Tomcat(463MB) 镜像,比较耗时。
结果:
- 官方中国:https://registry.docker-cn.com 耗时37秒
- 中国科学技术大学:https://docker.mirrors.ustc.edu.cn 耗时3分钟
- 网易:http://hub-mirror.c.163.com 耗时2分45秒
- 阿里云:地址需要申请(免费) 耗时 34秒
- 不配 :默认官方(国外) 3次都连接超时
这里的耗时并不绝对,与个人网络环境有关。如果你使用的是阿里云的服务器,可不配置仓库地址,默认从阿里云拉取镜像。
1.2、修改配置:
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
保存退出、重新加载、重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
2、查看镜像:
命令:docker images
此时是没有镜像的,需要构建或者远程拉取。
参数说明:
- REPOSITORY:镜像仓库源
- TAG:镜像标签,代表不同的版本
- IMAGE ID:镜像 id
- CREATED:创建时间
- SIZE:镜像大小
3、获取镜像:
3.1、拉取之前可以查找一下
命令: docker search 镜像名称
3.2、拉取镜像
命令:docker pull 镜像名称[:TAG] tag不写默认最新
3.3、删除镜像:
# 删除指定镜像:
docker rmi $IMAGE_ID 指定镜像id
# 删除所有镜像:
docker rmi `dockerimages -q`
容器操作:
1、运行一个容器:
# 创建一个容器:
docker run -d -p 5000:8080 --name XXX 镜像id
-d:后台运行
-p: 端口映射 主机 :容器
--name:别名
Tomcat程序已启动,主机4000端口映射到容器8080端口。
访问地址:ip:4000
可以看到运行了一个Tomcat容器。
4.2、容器其他命令:
docker ps : 正在运行的容器
docker ps -a : 所有容器(包含未运行的):
docker stop 容器id/容器名称 : 停止正在运行的容器
docker start 容器id/容器名称 : 启动停止的容器
docker rm 容器id/容器名称 : 删除停止的容器
我的阿里云上的容器情况:
总结:
1、使用centos7.x(64位)安装,建议使用云服务器。
2、docker的安装、启动、停止命令。
3、国内网速原因,建议配置国内镜像仓库地址,我使用的是阿里云服务器,默认就是使用阿里云镜像仓库地址。
4、镜像的命令。
5、容器的相关命令。理解如何使用镜像创建一个容器。