在本地安装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上进行的搜索类似(可使用过滤器)。

在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中。
将图像保存和加载
可以在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
感谢您。