Docker入门实战(一)——Docker常用命令
2016-08-20 11:46
801 查看
什么是Docker?
Docker containers wrap a piece of software in a complete filesystem that contains everything needed to run: code, runtime, system tools, system libraries – anything that can be installed on a server. This guarantees that the software will always run the same, regardless of its environment.Docker容器是一个完整的文件系统,这个文件系统中包含了你的软件运行所需要的全部环境,如:软件的源码、运行环境、所需的软件等。也就是说,你的软件运行所需要的环境都包含在了Docker容器中,这样的话当你把代码部署到服务器上时就不需要考虑环境问题,只要服务器安装了Docker就能准确无误地运行你的软件。
Docker基本概念
镜像
镜像可以理解为一组指令的集合。这些指令确定你的软件运行所需要的环境,如确你需要什么操作系统、需要安装什么软件、需要执行什么命令。当我们做完一个镜像后可以把它通过git的方式管理起来。
镜像仓库
镜像仓库用于存储同一镜像的不同版本。容器
容器是镜像的运行实例,从使用者角度看它是一个完整的Linux系统。Registry
Registry用于存储镜像仓库。Registry分为两种类型,一种是Docker官方提供的Registry,称为Docker Hub,它和Github一样,我们可以注册账号,并存储自己的镜像,也可以使用别人的镜像;另一种是自己搭建的Registry,由于Docker Hub是一个开源项目,因此我们可以把Docker Hub部署到我们的局域网中,从而拥有私有的Registry。Docker常用命令
查看镜像
该命令会显示本地所有镜像:docker images
结果如下:
REPOSITORY TAG IMAGE ID CREATED SIZE chai/tomcat8 0.0.1 4af46f004a15 4 days ago 1.197 GB chaimm/tomcat8 0.0.1 4af46f004a15 4 days ago 1.197 GB ubuntu latest f8d79ba03c00 8 days ago 126.4 MB centos latest 970633036444 3 weeks ago 196.7 MB
REPOSITORY:镜像仓库的名字
TAG:该镜像的版本号
IMAGE ID:镜像的ID
CREATED:创建时间
SIZE:镜像的大小
新建容器
方式一:
该命令会基于指定镜像创建一个新的容器:docker run --name 容器名 -i -t 镜像名 /bin/bash
–name:为容器设置一个名字
-i -t:使得容器启动后能获取该容器的shell
镜像名:指定容器要基于哪一个镜像运行
最后一个参数是运行时需要需要执行的命令,这里执行/bin/bash使得容器运行后启动一个bash供我们和容器交互。
启动后结果如下:
[root@20fcdc5cdc57 local]#
启动后我们将进入容器内部,获得一个用于和容器交互的shell,我们可以在这里对容器作任何操作,并且和操作一台Linux系统没有任何区别。
方式二:
docker run --name 容器名 -d 镜像名
上述命令将-i -t和/bin/bash换成了-d,从而可以使容器在后台运行,无交互式shell。
该命令执行后仅返回一个容器ID。
查看已创建的容器
docker ps -a
-a:能查看所有已经被创建的容器;不加这个参数仅会显示正在运行的容器。
执行结果如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 20fcdc5cdc57 chai/tomcat8:0.0.1 "/bin/bash" 4 days ago Exited (0) 6 minutes ago tomcat8 d89068a849bd centos "/bin/bash" 4 days ago Exited (0) 4 days ago high_ride
CONTAINER ID:该容器的ID
IMAGE:该容器使用的镜像
COMMAND:启动时执行的命令
CREATED:容器创建时间
STATUS:当前运行状态
PORTS:该容器所开启的端口号
NAMES:容器的名字
启动已创建的容器
docker start 容器名
该命令执行后容器会在后台运行,只返回一个容器ID,若需要获取容器交互式shell,需要继续执行如下命令:
docker attach 容器名
在容器内执行命令
要在容器内执行命令有两种情况:情况一:如果你已经进入容器内部,并获取了容器的shell,那么就执行执行命令即可;
情况二:如果容器在后台运行,那么你可以通过docker exec命令直接在宿主机上执行某个容器的命令,该命令的用法如下:
docker exec [参数] 容器名 命令
上述命令会在指定的容器中执行指定的命令。
如果你的命令无需交互,那么需要在参数部分加上-d,使得该命令在容器后台执行即可;
如果你的命令在执行过程中需要用户输入,那么需要在参数部分加上-i -t,并使用命令:/bin/bash,从而你就能进入容器内部,获取一个交互式的shell。
停止容器
方式一:
当你在容器内部,只要执行exit命令即可停止并退出容器。方式二:
当容器处于后台运行的状态,你需要通过如下命令停止容器:docker stop 容器名
获取容器参数
docker inspect 容器名
上述指令可以查看指定容器的所有配置信息,这些信息以JSON的形式返回,如下:
[ { "Id": "20fcdc5cdc577460fb58bfe76eff743f176cfabbcbf4942401dc7aa35031a56b", "Created": "2016-08-15T13:45:50.99616017Z", "Path": "/bin/bash", "Args": [], "State": { "Status": "exited", "Running": false, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 0, "ExitCode": 0, "Error": "", "StartedAt": "2016-08-20T02:50:13.565344395Z", "FinishedAt": "2016-08-20T02:51:31.574303352Z" }, "Image": "sha256:4af46f004a1542f94b6a4178d1af7eaa896e45bcfaf1fd1955a6c08a36670c0d", "ResolvConfPath": "/var/lib/docker/containers/20fcdc5cdc577460fb58bfe76eff743f176cfabbcbf4942401dc7aa35031a56b/resolv.conf", "HostnamePath": "/var/lib/docker/containers/20fcdc5cdc577460fb58bfe76eff743f176cfabbcbf4942401dc7aa35031a56b/hostname", "HostsPath": "/var/lib/docker/containers/20fcdc5cdc577460fb58bfe76eff743f176cfabbcbf4942401dc7aa35031a56b/hosts", "LogPath": "/var/lib/docker/containers/20fcdc5cdc577460fb58bfe76eff743f176cfabbcbf4942401dc7aa35031a56b/20fcdc5cdc577460fb58bfe76eff743f176cfabbcbf4942401dc7aa35031a56b-json.log", "Name": "/tomcat8", "RestartCount": 0, "Driver": "aufs", ……………………
如果你只需要查看其中某个信息,可以使用-f或–format参数指定:
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名
删除容器
docker rm 容器名
相关文章推荐
- Docker入门实战(一)——Docker常用命令
- Docker入门及常用命令
- Docker入门之 - Docker常用命令
- Docker 入门学习笔记二:常用命令
- Docker入门之常用命令
- Docker新手入门之九:Docker常用命令总结
- Docker入门学习(3)----Docker架构与常用命令总结
- Heroku实战入门(三)常用命令
- Docker入门实践(六) 常用操作命令示例汇总
- LINUX入门常用命令之进入与退出
- LINUX入门常用命令之磁盘管理
- 存储入门:volume manager常用命令速查
- Linux 入门常用命令 — 文本处理
- Linux 入门常用命令 — 目录的创建与删除
- linux常用命令之bash入门指南
- Linux 入门常用命令 — 修改密码,改变用户
- Linux 入门常用命令 — 文件的复制、删除和移动
- LINUX入门常用命令之文件内容查看
- Linux 入门常用命令 — 备份与压缩
- LINUX入门常用命令之备份与压缩