02. 第一个Docker部署应用

目录

1、前言

2、Docker部署Nginx

3、修改镜像存储路径

3.1、默认存储路径

3.2、自定义存储路径

3.2.1、创建自定义的镜像存储路径

3.2.2、创建Docker守护进程的配置文件

3.2.3、重启docker服务

3.2.4、重新查看docker路径

4、配置镜像加速

4.1、配置阿里镜像加速器

4.1.1、访问阿里云

4.1.2、修改/etc/docker下配置

4.1.3、验证加速器

5、拉取Tomcat镜像

5.1、拉取Tomcat

5.2、运行tomcat

5.3、创建一个Tomcat应用


1、前言

上一篇文章我们认识了什么是Docker,以及搭建Docker基础环境。那么今天我们就来使用Docker部署我们的第一个应用,从部署中我们加深认识关于Docker的各个组件和概念,记住这张体系结构图。

02. 第一个Docker部署应用_第1张图片

2、Docker部署Nginx

先尝试简单部署个Nginx,初步了解下Docker是如何拉取镜像的。

按照上述的体系结构图。

1)首先,我们需要到镜像仓库中搜索Nginx的镜像。

docker search nginx

02. 第一个Docker部署应用_第2张图片

我们可以看到OFFICIAL列有几个显示[OK]。这些表示该镜像是Docker官方提供的。

2)从镜像库中拉取Nginx镜像到本地(宿主机)。

这里默认拉取docker.io/library/nginx镜像,即官方提供的Nginx镜像:

docker pull nginx

02. 第一个Docker部署应用_第3张图片

3)查看本地镜像。

docker images

4)创建Nginx容器。

docker run -d -p 1111:80 nginx
  • -d:启动容器守护进程(deamon)。
  • -p:将容器内端口(80)映射到宿主机端口(1111)。这样相当于宿主机端口(1111)就可以访问容器内部(80)端口了。

5)查看容器信息。

docker ps

6)访问Nginx。

这里每个人虚拟机IP不一样,可以使用ifconfig自行查看。

http://虚拟机IP:111。 可以看到nginx界面已经出来了。

02. 第一个Docker部署应用_第4张图片

7)销毁容器和镜像。

如果需要终止容器,或销毁容器,则销毁容器命令和销毁镜像命令:

# 停止容器
docker stop 容器ID或名称

# 移除容器
docker rm -f 容器ID或名称

# 销毁镜像
docker rmi  镜像ID

3、修改镜像存储路径

上一节中,就是基础的docker构建第一个应用的基础流程。其中第一步我们是需要拉取镜像仓库中的文件到我们本地仓库。那么不知道有没留意到,我们至始至终是都没有指定任何本地(宿主机)存储这些镜像文件的路径的,那么他们是存储在哪里的?

3.1、默认存储路径

我们查看下docker信息:

docker info

02. 第一个Docker部署应用_第5张图片

我们可以看到“Docker Root Dir”:/var/lib/docker。没错,这里就是默认的镜像存储路径。

可以使用docker info | grep "Root Dir"可以更直接看到。

那么我们进去该目录看下:

02. 第一个Docker部署应用_第6张图片

看这个结构,好像确实是docker的存储信息,因为有我们熟悉的containers(容器),image(镜像)等。但是没有我们上面存储的nginx镜像啊?别急。

使用我们的镜像ID来查找我们的镜像文件:

find . -name 镜像ID*

3.2、自定义存储路径

然而在实际生产环境中,Docker默认的路径一般都为系统盘,因此我们往往都需要指定我们自己的数据盘路径来存储镜像。

3.2.1、创建自定义的镜像存储路径

我自定义的路径为/data/docker

3.2.2、创建Docker守护进程的配置文件

cd /etc/docker
vim daemon.json

deamon.json中添加内容:

{
    "graph": "/data/docker"
}

3.2.3、重启docker服务

systemctl daemon-reload
systemctl restart docker

02. 第一个Docker部署应用_第7张图片

3.2.4、重新查看docker路径

已经变更为我们自定义的新路径。

4、配置镜像加速

在搭建基础环境那一篇中,我们介绍到了Docker有一个基础的公有镜像仓库Docker Hub。我们上面使用docker search和docker pull命令都是从Docker Hub中拉取的。

有时候,我们发现这样的拉取速度很慢。这是因为Docker Hub是国外的镜像仓库,因此我们通常需要配置国内的镜像加速器。Docker可以配置国内镜像加速器,比如阿里云,网易蜂巢,Docker中国区官方加速器等。

以下使用阿里云镜像加速为例。

4.1、配置阿里镜像加速器

4.1.1、访问阿里云

首先注册一个阿里云账号。进入阿里云官网搜索容器镜像。进入容器镜像服务网站:

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

02. 第一个Docker部署应用_第8张图片

4.1.2、修改/etc/docker下配置

按照操作文档,我们虚拟机是CentOS。可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

4.1.3、验证加速器

docker info | tail

可以看到Registry Mirrors已经设置成阿里云的镜像加速器。

02. 第一个Docker部署应用_第9张图片

5、拉取Tomcat镜像

上面配置完自定义存储路径和加速器后,我们再来拉取一个Tomcat镜像来试验一下。

5.1、拉取Tomcat

docker pull tomcat

我们可以看到拉取速度快了很多。

02. 第一个Docker部署应用_第10张图片

5.2、运行tomcat

docker run --name mytomcat -d -p 8081:8080 tomcat

访问http://ip:8081可以看到tomcat页面,404是因为都还未部署应用。

02. 第一个Docker部署应用_第11张图片

5.3、创建一个Tomcat应用

进入tomcat容器内部。

docker exec -it 容器ID /bin/bash

# 退出容器可以使用exit
exit

写入一个简单的html页面。

mkdir webapps/demo
echo "

my docker first tomcat demo

" > webapps/demo/index.html

接着在访问http://ip:8081/demo/index.html。我们便能看到我们创建的页面效果:

你可能感兴趣的:(云原生,docker,容器,linux,运维,云原生)