安装Docker CE
Docker有两个分支版本:Docker CE和Docker EE,即社区版和企业版。本文基于CentOS 7安装Docker CE。
- 执行如下命令,安装Docker的依赖库。
yum install -y yum-utils device-mapper-persistent-data lvm2
- 执行如下命令,添加Docker CE的软件源信息(我这里选择的是阿里云的源)。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
执行如下命令,安装Docker CE。
注:yum makecache fast命令是将软件包信息提前在本地索引缓存,用来提高搜索安装软件的速度,建议执行这个命令可以提升yum安装的速度。
yum makecache fast
yum -y install docker-ce
- 执行如下命令,启动Docker服务。
systemctl start docker
docker学习与安装可以参考菜鸟教程
至此docker安装完成,下面是配置阿里云的镜像仓库以提升镜像下载速度和初使用docker
配置阿里云镜像仓库(镜像加速)
Docker的默认官方远程仓库是hub.docker.com,由于网络原因,下载一个Docker官方镜像可能会需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务ACR提供了官方的镜像站点,从而加速官方镜像的下载。下面介绍如何使用阿里云镜像仓库。
- 复制容器镜像服务控制台地址,粘贴并访问云容器镜像服务控制台。
https://cr.console.aliyun.com/
- 在容器镜像服务控制台左侧导航栏中,选择镜像工具>镜像加速器。
- 在镜像加速器页面的加速器区域,单击复制。
- 切换至终端页面。执行如下命令配置Docker的自定义镜像仓库地址。请将下面命令中的镜像仓库地址 https://kqh8****.mirror.aliyuncs.com 替换为上一步阿里云为您提供的专属镜像加速地址。
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://kqh8****.mirror.aliyuncs.com"]
}
EOF
- 重新加载服务配置文件。
systemctl daemon-reload
- 重启Docker服务。
systemctl restart docker
使用Docker安装Nginx服务
- 查看Docker镜像仓库中Nginx的可用版本。
docker search nginx
- 获取最新版的Nginx镜像。
docker pull nginx:latest
- 查看本地镜像。
docker images
- 运行容器。
docker run --name nginx-test -p 8080:80 -d nginx
命令参数说明:
–name nginx-test:容器名称。
-p 8080:80: 端口进行映射,将本地8080端口映射到容器内部的80端口。
-d nginx: 设置容器在后台一直运行。
- 在浏览器中打开新页签,在地址栏输入http://<服务器ip地址>:8080访问Nginx服务。
- 使用 docker ps 命令来查看我们正在运行的容器(这里显示了我运行的容器镜像是httpd,以及容器id):
容器网络-docker网络模型
docker提供了诸如None、Host、Bridge、Overlay、Macvlan等多种原生网络。按网络覆盖范围可分为单个主机上的容器网络和跨多个主机的容器网络。接下来普及一下单个主机网络:
docker安装时会自动在主机上创建3个网络,我们可以用docker network ls 命令查看网络
–None网络:这是一个封闭的网络,一些安全性要求高且不需要连网的应用可以使用None网络;挂在这个网络下的容器除了lo,就没有其他任何网卡了,可以通过–network-none指定使用None网络。
–Host网络:连接到Host网络的容器共享Docker Host的网络栈,容器的网络配置与主机完全一样。可以通过–network-host指定使用Host网络。
下的容器除了lo,就没有其他任何网卡了,可以通过–network-none指定使用None网络。
–Host网络:连接到Host网络的容器共享Docker Host的网络栈,容器的网络配置与主机完全一样。可以通过–network-host指定使用Host网络。
–Bridge网络:docker安装时会默认创建一个名为“docker0”的LInux网桥。如果不指定–network,创建的容器都会默认挂到docker0上。