我试着简单地概述了一下Docker的基本知识

Docker:

想要了解Docker,我觉得应该好好学习一下Docker的基础知识,所以我整理了一篇关于系统性学习Docker基础的文章总结,并做了学习笔记。

Docker的使用方法

1. 从Docker Hub上获取Nginx的Docker镜像
2. 通过Docker镜像创建并启动容器
3. 通过浏览器访问Nginx
4. 停止Docker

首先尝试使用Docker来进行”容器启动”。

如果执行docker run时没有镜像,它会自动下载。创建容器。

# docker 起動 -0d[バックグラウンド実行] -p[ポート指定] --name[コンテナ名指定] 使用するイメージ
$ docker run -d -p 8080:80 --name nginx-test nginx

确认启动

# 起動しているコンテナの確認
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
126f50f13c8f        nginx               "nginx -g 'daemon of…"   2 minutes ago       Up 2 minutes        0.0.0.0:8080->80/tcp               nginx-test

确认所有的容器

$ docker ps -a

停止容器。

$ docker stop nginx-test

启动容器

$ docker start nginx-test

从创建图像到执行命令。

下载CentOS镜像并启动容器。

检查Docker镜像。

$ docker images

在中国境内只需要一种选择:基于图像的搜索。

$ docker search centos
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
centos                             The official build of CentOS.                   5743                [OK]                

从Docker Hub下载Docker镜像
下载 centos。版本可以在冒号后面进行指定。

$ docker pull centos:7

我将确认是否可以下载CentOS。

$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
centos               7                   5e35e350aded        7 weeks ago         203MB

使用CentOS镜像创建容器。

$ docker run -it -d -p 8080:80 --name centos-test centos:7

查看集装箱

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
c7450e70b170        centos:7            "/bin/bash"              5 seconds ago       Up 3 seconds        0.0.0.0:8080->80/tcp               centos-test

我已经成功完成了任务。
接下来我将尝试登录容器。
登录命令有以下两个选项。
exec……在容器内创建一个新的”/bin/bash”进程并登录。
attach……只是连接容器的标准输入和输出。退出登录后容器将停止运行。

$ docker exec -it centos-test bash

如果能够成功登录,那么我将尝试安装nginx。

$ yum localinstall -y http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
$ yum install -y nginx
$ nginx

当你访问 http://localhost:8080 并显示出nginx页面时,表示成功。
Docker真是方便啊。

注销 (zhù

$ exec

从容器创建镜像
使用先前创建的”centos-test”容器创建镜像并启动。

$ docker commit centos-test original-nginx
$ docker run -it -d -p 8080:80 --name original-nginx original-nginx

# ログイン
$ docker exec -it centos-test bash
$ nginx

当您访问http://localhost:8080并看到显示出nginx页面时,就表示成功了。

一旦删除之前创建的容器和镜像。

删除容器
※在删除时,请先停止容器。

$ docker rm [CONTAINER ID]or[CONTAINER NAME]

删除图像

$ docker rmi [REPOSITORY]or[IMAGE ID]

通过使用Dockerfile来创建镜像。

要创建容器,需要使用docker run命令。但是请注意,它会同时进行创建和启动。
只是启动时使用docker start。
停止时使用docker stop centos。

要连接到容器,需要使用docker exec命令。

要登录到容器中,可以使用docker exec -it [镜像名称] bash命令。

通过点击“退出”进行注销。

执行docker attach [镜像名称]命令并登录后退出,将会停止该进程。

使用docker commit命令,可以基于现有镜像创建一个新的镜像,其中[use-image-name]表示现有镜像名称,[new-image-name]表示新镜像名称。当然,还可以启动该容器。

Dockerfile 是一个文件。

Dockerfile可以简单地说就是将流程以代码形式记录的文件。

可以将构建步骤以代码的形式保存到文件中
可以轻松修改构建步骤
可以方便地进行共享
可以进行版本管理

以下是步骤的大致情况。

    1. 获取CentOS7基础映像

 

    1. 在CentOS7上安装Nginx

 

    启动Nginx(前台运行)

创建Dockerfile文件。

# CentOS7のベースイメージを取得
FROM centos:7

# Nginxのインストール
RUN yum localinstall -y http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
RUN yum install -y nginx

# Nginxを起動(フォアグラウンドで動かす)
CMD ["nginx", "-g", "daemon off;"]

Dockerfile的不同说明

使用Dockerfile构建镜像。

您可以使用docker build命令进行构建。

# docker build -t [IMAGE NAME] dockerfileのパス
$ docker build -t dockerfile_test ./

# イメージが作成されてるか確認
$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED              SIZE
dockerfile_test      latest              dd02f0714963        About a minute ago   331MB

# コンテナ起動
$ docker run -it -d -p 8080:80 --name build-nginx dockerfile_test

如果成功打开 http://localhost:8080 并显示出 Nginx 的界面,那就算成功了。

我将尝试使用已经重新创建的Dockerfile来创建另一个容器。

$ docker build -t dockerfile_test02 ./
Sending build context to Docker daemon  2.048kB
Step 1/4 : FROM centos:7
 ---> 5e35e350aded
Step 2/4 : RUN yum localinstall -y http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
 ---> Using cache
 ---> 866959355b7d
Step 3/4 : RUN yum install -y nginx
 ---> Using cache
 ---> 3b3ce6786dc2
Step 4/4 : CMD ["nginx", "-g", "daemon off;"]
 ---> Using cache
 ---> dd02f0714963
Successfully built dd02f0714963
Successfully tagged dockerfile_test02:latest

在进行Docker构建时,会使用缓存。
由于这个缓存,第一次之后的执行时间和执行日志会缩短。

综上所述

创建容器的顺序如下:
1. 通过docker pull从Docker Hub下载镜像。
2. 使用docker run -d -p 8080:80 –name [容器名称] [镜像名称]命令创建容器。

不过,如果在运行时没有图像,它会自动帮你下载,所以无论哪种都可以吧。

Dockerfile的用法
1. 在Dockerfile中进行描述
2. 使用命令docker build -t [镜像名称] [Dockerfile路径]构建Dockerfile并创建镜像
3. 使用命令docker run -d -p 8080:80 –name [容器名称] [镜像名称]创建容器

下一次我們將使用docker-compose來建立node.js的環境配置。

广告
将在 10 秒后关闭
bannerAds