扯淡:

上一章前言已经引入了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

docker cp 能排除哪个文件夹吗_docker cp 能排除哪个文件夹吗

这里如果没有加 -y 到最后会有 “Is this ok [y/d/N] : ”让用户选择,输入 y 回车即可。

2、上一步完成之后可查看 docker 版本。

# 版本命令
docker -v

docker cp 能排除哪个文件夹吗_docker_02

3、docker 安装完成并没有启动,相关基本命令

# 启动命令:
service docker start
# 停止命令:
systemctl stop docker 
# 重启命令:
systemctl restart docker
# 开机启动:
systemctl enable docker
# 帮助信息:
docker --help
# 详细信息:
docker info
# docker状态:
systemctl status docker

docker启动:

docker cp 能排除哪个文件夹吗_spring_03

docker状态:

docker cp 能排除哪个文件夹吗_centos_04

4、docker 卸载:

# 卸载命令:
sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine

docker cp 能排除哪个文件夹吗_springcloud_05

这样只会卸载docker本身,并没有删除它的相关文件(镜像、容器等)。我们需要手动删除  /var/lib/docker 下的文件。

docker cp 能排除哪个文件夹吗_springcloud_06

镜像(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 

docker cp 能排除哪个文件夹吗_centos_07

{
        "registry-mirrors": ["https://registry.docker-cn.com"]
}

保存退出、重新加载、重启docker

sudo systemctl daemon-reload

sudo systemctl restart docker

2、查看镜像:

命令:docker images

docker cp 能排除哪个文件夹吗_centos_08

此时是没有镜像的,需要构建或者远程拉取。

参数说明:

  • REPOSITORY:镜像仓库源
  • TAG:镜像标签,代表不同的版本
  • IMAGE ID:镜像 id
  • CREATED:创建时间
  • SIZE:镜像大小

3、获取镜像:

3.1、拉取之前可以查找一下

命令: docker search 镜像名称

3.2、拉取镜像

命令:docker pull 镜像名称[:TAG]  tag不写默认最新

docker cp 能排除哪个文件夹吗_docker_09

3.3、删除镜像:

# 删除指定镜像:
docker rmi $IMAGE_ID  指定镜像id
# 删除所有镜像:
docker rmi `dockerimages -q`

容器操作:


1、运行一个容器:

# 创建一个容器:
docker run -d -p 5000:8080 --name XXX  镜像id
-d:后台运行 
-p: 端口映射  主机 :容器
--name:别名

docker cp 能排除哪个文件夹吗_centos_10

Tomcat程序已启动,主机4000端口映射到容器8080端口。

访问地址:ip:4000

docker cp 能排除哪个文件夹吗_centos_11

可以看到运行了一个Tomcat容器。

4.2、容器其他命令:

docker ps     :  正在运行的容器
docker ps -a : 所有容器(包含未运行的):
docker stop 容器id/容器名称  : 停止正在运行的容器
docker start 容器id/容器名称  : 启动停止的容器
docker rm 容器id/容器名称     : 删除停止的容器

我的阿里云上的容器情况:

docker cp 能排除哪个文件夹吗_spring_12

总结:

1、使用centos7.x(64位)安装,建议使用云服务器。
2、docker的安装、启动、停止命令。
3、国内网速原因,建议配置国内镜像仓库地址,我使用的是阿里云服务器,默认就是使用阿里云镜像仓库地址。
4、镜像的命令。
5、容器的相关命令。理解如何使用镜像创建一个容器。