You need to enable JavaScript to run this app.
导航

搭建Docker

最近更新时间2023.12.07 14:18:20

首次发布时间2021.11.15 15:42:33

本文介绍如何在Linux实例上部署Docker,以及Docker常用操作和镜像制作过程。

关于Docker

Docker是一个开源应用容器引擎,可以将应用程序及其依赖项打包到可以在任何Linux、Windows或macOS计算机上运行的虚拟容器中,使应用程序能够在各种位置运行,如本地、公有云或私有云。更多信息请访问 Docker docs获取。

Docker 主要组成部分如下:

  • Docker Client 客户端
  • Docker Daemon 守护进程
  • Docker Image 镜像
  • Docker Container 容器

前提条件

  • 购买云服务器绑定公网 IP

  • 云服务器状态为 运行中

  • linux 系统内核为3.10及以上版本,且系统为64位。可通过uname -r查询。

软件版本

  • Linux 操作系统:本文以 CentOS 7.6 为例。

操作步骤

安装 Docker

  1. 登录云服务器

  2. 执行以下命令,添加 yum 源。
    yum update -y

    yum install epel-release -y

    yum clean all

    yum list

  3. 执行以下命令,安装 Docker。
    yum install docker-io -y

  4. 执行以下命令,运行 Docker。
    systemctl start docker

  5. 执行以下命令,确认 Docker 安装情况。
    docker info

返回如下回显信息,即为安装成功。
image

使用 Docker

管理 Docker 守护进程

systemctl start docker    #运行 Docker 守护进程
systemctl stop docker     #停止 Docker 守护进程
systemctl restart docker  #重启 Docker 守护进程

管理镜像

  • 拉取镜像
    本文以 Docker Hub 的 ubuntu 镜像为例。
    docker pull ubuntu

  • 查看已有镜像
    docker images
    image

  • 强制删除镜像
    docker rmi -f ubuntu

    删除后,可通过docker images查看目标镜像是否成功删除。

管理容器

  • 进入容器
    docker run -it ImageId /bin/bash

    其中,ImageId可通过执行docker images命令获取。

  • 退出容器
    执行exit命令,退出当前容器。

  • 后台运行容器
    docker run -d --name ubuntu ImageId
    --name指定容器名称为 ubuntu。

  • 进入后台运行的容器
    docker exec -it 容器 ID /bin/bash

    其中,容器 ID可通过执行docker ps命令获取。

  • 将容器做成镜像
    docker commit <容器 ID 或容器名> [<仓库名>[:<标签>]]

    例如:docker commit 097fdd5e**** dockertest/ubuntu:latest

制作镜像

  1. 执行以下命令,创建并编辑 Dockerfile 文件
    vim Dockerfile

  2. i进入编辑模式,添加以下内容。

    FROM nginx
    RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
    

    Dockerfile 指令介绍如下。以下仅介绍简单指令,如需了解更多,请参见官方网站

    • FROM语句:表示使用 nginx 镜像作为基础镜像,一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。
    • RUN语句:格式为 RUN <命令>,表示执行 echo 命令,在显示器中显示一段“Hello, Docker!”的文字。
  3. 按下 Esc 键,输入:wq并按下 enter 键,保存并退出 Dockerfile 文件。

  4. 执行以下命令,构建镜像。

    docker build -t nginx:v1 .            # . 是 Dockerfile 文件的路径,不能忽略
    docker images                         #查看是否创建成功
    

    image

  5. 执行以下命令,运行容器并查看。

    docker run -d nginx:v1                #后台运行容器
    docker ps                             #查看当前运行中的容器
    docker ps -a                          #查看所有容器,包括未运行的容器
    docker logs CONTAINER ID/NAMES        #如未查看到刚才运行的容器,则用容器 ID 或者名字查看启动日志排错
    
  6. 执行以下命令,制作镜像。

    docker commit bd0d3e7e**** nginxtest:v1     #commit 参数后添加容器 ID 和构建新镜像的名称和版本号。
    docker images                               #列出本地(已下载的和本地创建的)镜像。
    
  7. 将镜像推送至远程仓库。

    默认推送到 Docker Hub。您需要先登录 Docker,为镜像绑定标签,将镜像命名为Docker 用户名/镜像名:标签的格式。最终完成推送。

    docker login
    docker tag [ImageId] [Docker 用户名]/[镜像名]:[标签]
    docker push [Docker 用户名]/[镜像名]:[标签]
    
  8. 登录 dockerhub 查看。
    image