【云原生】Docker 实践(一):在 Docker 中部署第一个应用

Docker 实践(一):在 Docker 中部署第一个应用

  • [1.使用 YUM 方式安装 Docker](#1.使用 YUM 方式安装 Docker)
  • [2.验证 Docker 环境](#2.验证 Docker 环境)
  • [3.在 Docker 中部署第一个应用](#3.在 Docker 中部署第一个应用)
    • [3.1 小插曲:docker pull 报 missing signature key 错误](#3.1 小插曲:docker pull 报 missing signature key 错误)
    • [3.2 重新安装 Nginx](#3.2 重新安装 Nginx)

1.使用 YUM 方式安装 Docker

执行以下命令进行安装:

bash 复制代码
yum -y install docker

执行以下命令启动 Docker 的服务:

bash 复制代码
# 服务立即启动
systemctl start docker.service
# 将服务设置为每次开机启动
systemctl enable docker.service

从上图可以看到,Docker 分为 Client 端和 Server 端,当前安装的 Docker 是 1.13.1 版本。

若要停止 Docker,则使用以下命令:

bash 复制代码
systemctl stop docker

2.验证 Docker 环境

使用 docker info 命令可以查看 Docker 运行状态的详细信息。

bash 复制代码
docker info
bash 复制代码
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.13.1
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: journald
Cgroup Driver: systemd
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: docker-runc runc
Default Runtime: docker-runc
Init Binary: /usr/libexec/docker/docker-init-current
containerd version:  (expected: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1)
runc version: 283e28b7d8a5ba31dd51213ce9126f3e0d529cfb (expected: 9df8b306d01f59d3a8029be411de015b7304dd8f)
init version: fec3683b971d9c3ef73f284f176672c44b448662 (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
 seccomp
  WARNING: You're not using the default seccomp profile
  Profile: /etc/docker/seccomp.json
Kernel Version: 3.10.0-1160.49.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 2
Total Memory: 3.7 GiB
Name: VM-24-17-centos
ID: 4VDV:DKVF:GFPL:XGOG:ODHU:37Z5:SE77:T47J:KKR3:ZI3X:VQ43:GIDO
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Registries: docker.io (secure)

通过使用系统服务命令可以查看 Docker 的运行状态。

bash 复制代码
systemctl status docker

3.在 Docker 中部署第一个应用

下面将演示如何在 Docker 中,通过使用 Nginx 镜像来部署第一个应用。

在镜像仓库中搜索 Nginx 的镜像。其中,OFFICAL 列中标有 [OK] 的镜像是 Docker 官方提供的镜像。

bash 复制代码
docker search nginx

通过以下命令从镜像仓库拉取 Nginx 的镜像到本地,这里拉取了 docker.io/library/nginx 镜像,即官方提供的 Nginx 镜像。

bash 复制代码
docker pull nginx

3.1 小插曲:docker pull 报 missing signature key 错误

参考《docker pull 报 missing signature key 错误

这里报错了,是因为我们前面安装的 Docker 版本太低了。需要先卸载,再重新安装。

bash 复制代码
yum erase docker \
          docker-client \
          docker-client-latest \
          docker-common \
          docker-latest \
          docker-latest-logrotate \
          docker-logrotate \
          docker-selinux \
          docker-engine-selinux \
          docker-engine \
          docker-ce

因为之前安装 Docker 的时候使用的是 yum -y install docker 命令,这个命令安装的是老版本,Docker 最新版本已经不叫这个名字了,需要使用 yum -y docker-ce 来安装。

bash 复制代码
yum -y install docker-ce

如果找不到 docker-ce,加入一个 yum 新镜像。

bash 复制代码
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

再次执行 yum -y install docker-ce 安装命令。

bash 复制代码
yum -y install docker-ce


可以看到,新安装的 Docker 版本是 26.1.0

3.2 重新安装 Nginx

bash 复制代码
docker pull nginx

使用 docker images 命令查看本地的镜像信息。

bash 复制代码
docker images

执行以下命令使用镜像来创建 Nginx 的容器。

bash 复制代码
docker run -d -p 1234:80 nginx
  • -d:启动容器的守护进程。
  • -p:将容器内的 80 端口映射到宿主机的 1234 端口。这样就可以通过宿主机访问容器内部了。

在容器创建并启动成功后,可以查看 Docker 的容器信息。

bash 复制代码
docker ps

打开浏览器访问 http://xxx.xx.xxx.xxx:1234/,将打开 Nginx 的首页。

如果要终止和销毁容器,则执行以下命令。

bash 复制代码
docker rm -f 5e9b19cf567b

再次查看容器信息,可以看到没有任何运行的容器信息。

相关推荐
大道归简2 小时前
Docker 命令从入门到入门:从 Windows 到容器的完美类比
windows·docker·容器
苦逼IT运维2 小时前
YUM 源与 APT 源的详解及使用指南
linux·运维·ubuntu·centos·devops
zeruns8022 小时前
如何搭建自己的域名邮箱服务器?Poste.io邮箱服务器搭建教程,Linux+Docker搭建邮件服务器的教程
linux·运维·服务器·docker·网站
爱跑步的程序员~2 小时前
Docker
docker·容器
疯狂的大狗3 小时前
docker进入正在运行的容器,exit后的比较
运维·docker·容器
长天一色3 小时前
【Docker从入门到进阶】01.介绍 & 02.基础使用
运维·docker·容器
伊玛目的门徒3 小时前
docker 搭建minimalist-web-notepad
运维·docker·notepad
theo.wu6 小时前
使用Buildpacks构建Docker镜像
运维·docker·容器
wusam15 小时前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习04(环境准备)
学习·docker·centos
wusam18 小时前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习03(网络及IP规划)
运维·服务器·网络·docker·容器