在本地安装CentOS的Docker时的备忘录:~ Docker基础(拉取、运行、保存、加载)~

写什么?

使用Docker创建一个CentOS镜像容器,并准备好应用程序环境,但我想要进行保存。
起初,我有点忘记,不太清楚。
我想要以操作步骤为基础简洁地总结一下。

尽管有许多可用的命令,但我只列举了最基本的。如果你和我有类似的需求,这可能会对你有所帮助。

之所以标注“本地”是因为以前总是在AWS上使用,
但这次是在自己的Mac上进行的。

带来一个意象

我要描述的是从已经公开的图像中提取出来的情况。

如果你想在Mac上验证CentOS7,你可以使用以下命令获取它:
“`docker pull centos:centos7“`

当然,如果只是想简单地分离出来,或者只是想分发自己制作的镜像,我没意见,可以自己动手做。但大多数情况下,我通常希望能够使用本地的CentOS等镜像。

从哪里获取镜像呢?
在Dockerhub上。

如果是普通的CentOS,可以使用这些标签
https://hub.docker.com/_/centos?tab=tags

噢,当然可以不必特意去网站上查找,你也可以使用命令进行搜索。

在其他用途中,举个例子来说,如果为了进行深度学习需要准备Python和TensorFlow环境会很麻烦,准备Keras和其他环境也会很烦人。但是在这种情况下,如果把这些作为基础镜像带过来就可以解决问题了。而且,作为一个进程运行的Docker可以限制内存或CPU,几乎不用担心系统崩溃。分离。https://hub.docker.com/r/tensorflow/tensorflow/ 我经常使用的。

现在开始,我们开始吧。

搜索需要的图像。这是针对CentOS的情况。

# docker search centos
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
centos                             The official build of CentOS.                   5520                [OK]                
ansible/centos7-ansible            Ansible on Centos7                              122                                     [OK]
jdeathe/centos-ssh                 CentOS-6 6.10 x86_64 / CentOS-7 7.6.1810 x86…   111                                     [OK]
consol/centos-xfce-vnc             Centos container with "headless" VNC session…   99                                      [OK]
centos/mysql-57-centos7            MySQL 5.7 SQL database server                   62                                      
imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              57                                      [OK]
tutum/centos                       Simple CentOS docker image with SSH access      44                                      
centos/postgresql-96-centos7       PostgreSQL is an advanced Object-Relational …   39                                      
kinogmt/centos-ssh                 CentOS with SSH                                 29                                      [OK]
centos/php-56-centos7              Platform for building and running PHP 5.6 ap…   22                                      
pivotaldata/centos-gpdb-dev        CentOS image for GPDB development. Tag names…   10                                      
nathonfowlie/centos-jre            Latest CentOS image with the JRE pre-install…   8                                       [OK]
drecom/centos-ruby                 centos ruby                                     6                                       [OK]
mamohr/centos-java                 Oracle Java 8 Docker image based on Centos 7    3                                       [OK]
darksheer/centos                   Base Centos Image -- Updated hourly             3                                       [OK]
…

呀,好兴奋啊( ◠‿◠ )

在这里进行的搜索与在Dockerhub上进行的搜索类似(可使用过滤器)。

スクリーンショット 2019-08-22 15.42.58.png

在Ubuntu镜像中试试看

我要试试从Ubuntu镜像开始。
为了以防万一,我首先进行镜像搜索。

$ docker search ubuntu
NAME                                                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ubuntu                                                    Ubuntu is a Debian-based Linux operating sys…   9855                [OK]                
dorowu/ubuntu-desktop-lxde-vnc                            Docker image to provide HTML5 VNC interface …   334                                     [OK]
rastasheep/ubuntu-sshd                                    Dockerized SSH service, built on top of offi…   228                                     [OK]
consol/ubuntu-xfce-vnc                                    Ubuntu container with "headless" VNC session…   186                                     [OK]
ubuntu-upstart                                            Upstart is an event-based replacement for th…   99                  [OK]                
…

哦,没问题的呢。形象已经正式发布了。
那我们就选最上面的官方形象吧。

$ docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
35c102085707: Pull complete 
251f5509d51d: Pull complete 
8e829fe70a46: Pull complete 
6001e1789921: Pull complete 
Digest: sha256:d1~c94d90
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

如果不指定任何标签,似乎会拉取最新的版本。

https://hub.docker.com/_/ubuntu?tab=description if-没有指定标签,会获取最新的版本。

确认图像

我会确认带来的图片。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              a2a15febcdf3        6 days ago          64.2MB

以后,经常会有使用REPOSITORY:TAG来进行指定的机会。

开始

那么,我们实际试试看吧。

$ docker run -ti ubuntu:latest /bin/bash
root@df0c54ef3b07:/#

站起来并走进去了。

root@df0c54ef3b07:/# cat /etc/os-release 
NAME="Ubuntu"
VERSION="18.04.3 LTS (Bionic Beaver)"
…

我已确认。

当确认 Docker 容器是否启动时

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                              NAMES
cfb97fea54fe        ubuntu:latest       "/bin/bash"         About a minute ago   Up About a minute                                      peaceful_villani

是的。

以下是补充内容。

在docker run中。

オプション説明-tiコンテナのプロセスにttyを割り当てる。/bin/bashbashで起動

将图像保存和加载

可以在Docker内尝试创建一个文件(新建立了Ubuntu)。

root@e7ff353d5a71:~# touch meguro
root@e7ff353d5a71:~# ls
meguro

现在的形象与过去的状态相同。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              a2a15febcdf3        7 days ago          64.2MB

将容器转换为图像

$ docker commit be6e776efcc4 ubuntu:meguntu
sha256:~e67r2d

使用save命令保存图像!

$ docker save ubuntu:meguntu > meguntu.tar

确认。做好了!

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              meguntu             63322548e865        2 minutes ago       64.2MB

停止当前正在运行的容器。也可以通过ID进行指定。

$ docker stop be6e776efcc4
be6e776efcc4

(让自己进入一个完全没有任何形象的状态)

$ docker rmi ubuntu:meguntu
Untagged: ubuntu:meguntu

这个被保存了吗?
能加载吗?

$ docker load < meguntu.tar 
61f77b8c33fa: Loading layer [==================================================>]  2.048kB/2.048kB
Loaded image: ubuntu:meguntu

确认。可以。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              a2a15febcdf3        7 days ago          64.2MB

让我们试一试。真的能保存下来吗?

$ docker run -ti ubuntu:meguntu /bin/bash
root@d8eab066c577:/# cd
root@d8eab066c577:~# ls
meguro

搞定了!

概述

所以,我们在本地的Docker中创建了一个CentOS,进行了配置和修改,并且成功保存/加载了该镜像。

如果您保存了镜像并在Docker Hub上公开或分发,就可以享受到Docker的好处了。

如果对您来说有一点点帮助的话,能够顺利复习的话,就请给我一个赞!拜托了m(_ _)m

感谢您。

广告
将在 10 秒后关闭
bannerAds