Docker三大核心组件:镜像、容器与仓库,你了解多少呢?( 三 )

2.2 启动容器
启动容器有几种不同的方式,最常用的方法是使用docker run命令可以通过镜像创建一个容器,如:
# /bin/bash表示运行容器后要执行的命令$ docker run -it centos /bin/bashdocker run命令有一些比较常用的参数,比如容器是一种提供服务的守护进程,那么通常需要开放端口供外部访问,如:
$ docker run -p 80:80 Nginx也可以为容器指定一个名称,如:
$ docker run -p 80:80 --name webserver nginx另外一种则是使用docker start命令重新启动已经停止运行的容器,如:
# container_id表示容器的id$ docker start container_id而对于正在运行的容器,也可以通过docker restart命令重新启动,如:
# container_id表示容器的id$ docker restart container_id2.3 查看本地容器列表
运行容器后,我们可以通过下面的命令查看本地所有容器:
$ docker container ls不过docker container ls也简洁的写法:
$ docker ps上面命令执行结果如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESf4f184f5ffb9 redis:latest "docker-entrypoint.s…" 6 seconds ago Up 4 seconds 0.0.0.0:6379->6379/tcp myredisf7d970e7d4ce mysql:5.7 "docker-entrypoint.s…" 7 seconds ago Up 5 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp docker-mysql上面的命令只会显示正在运行的容器,如果要显示全部容器,包含退出执行的,可以加参数-a,如:
$ docker ps -a有时候,我们只想查到容器的id,可以用下面的命令:
$ docker ps -aq执行结果
f4f184f5ffb9f7d970e7d4ce2.4 停止容器
对于已经不需要的容器,可以使用docker stop命令停止其运行,如:
$ docker stop container_id1,container_id2...批量停止容器,如:
$ docker stop $(docker ps -qa)2.5 容器的三种运行模式
概括而言,Docker容器大体上有三种运行模式,如下:
2.5.1 运行后退出
下面语句创建的容器,在运行后会退出 。
$ docker run centos echo "hellowrold"2.5.2 常驻内存,就是守护进程的模式
如果容器中运行一个守护进程,则容器会一直处于运行状态,如:
$ docker run -d -p 80:80 nginx2.5.3 交互式
我们也可以在运行容器时,直接与容器交互 。
$ docker run -it centos /bin/bash2.6 删除容器
$ docker container rm container_id删除容器的命令也有简洁的写法,如下:
$ docker rm container_id也可以像上面批量停止容器一样,我们也可以批量删除容器,如:
$ docker rm $(docker ps -qa)2.7 进入容器
对于正在运行的容器,我们也可以通过docker exec命令再次进入容器,如:
$ docker exec -it f4f184f5ffb9 /bin/bash需要指定容器的id或name,上面的命令我们用的是id 。
2.8 导出容器为镜像
$ docker export -o ./image.tar.gz f4f184f5ffb9将容器导出后,我们可以另外一台有安装Docker的电脑中将文件包导入成为镜像,如:
$ docker import image.tar.gz上面讲的是容器的概念和一些常用的命令,关于容器,还可以设置数据卷和网络空间,这些我们有机会后面再谈 。
03 仓库(Repository)仓库(Repository)是集中存储镜像的地方,这里有个概念要区分一下,那就是仓库与仓库服务器(Registry)是两回事,像我们上面说的Docker Hub,就是Docker官方提供的一个仓库服务器,不过其实有时候我们不太需要太过区分这两个概念 。
3.1 公共仓库
公共仓库一般是指Docker Hub,前面我们已经多次介绍如何从Docker Hub获取镜像,除了获取镜像外,我们也可以将自己构建的镜像存放到Docker Hub,这样,别人也可以使用我们构建的镜像 。
不过要将镜像上传到Docker Hub,必须先在Docker的官方网站上注册一个账号,注册界面如下,按要求填写必要的信息就可以注册了,很简单的 。

Docker三大核心组件:镜像、容器与仓库,你了解多少呢?

文章插图
 
注册好了之后,可以在本地使用命令登录到Dokcer Hub了,过程如下
# 在命令行中输入$ docker login
Docker三大核心组件:镜像、容器与仓库,你了解多少呢?

文章插图
 
在输入账号密码登录到Docker Hub之后,便可以使用docker push命令把镜像推送到Docker Hub 。
$ docker push test:1.03.2 私有仓库
有时候自己部门内部有一些镜像要共享时,如果直接导出镜像拿给别人又比较麻烦,使用像Docker Hub这样的公共仓库又不是很方便,这时候我们可以自己搭建属于自己的私有仓库服务,用于存储和分布我们的镜像 。


推荐阅读