运维实战技术
运维实战技术
docker run是最常用也是最复杂的命令,通过docker help run可以看到该命令有很多选项。
其中最常用的的选项包括:
-i -t 这两个选项经常一起使用,可以缩写为-it,用于创建交互式容器。
-d 让容器运行在后台,用于创建守护式容器。
--name 为容器指定一个名称。
容器运行成功后,会返回一个64字符的容器ID,作为容器的唯一标识。
通过如下命令运行一个交互式容器:
sudo docker run -it centos:6 /bin/bash
-it 指定要创建交互式容器。
centos:6 以仓库:TAG的形式指定镜像名称。
/bin/bash 容器对应的进程,会启动一个新的shell。
Note
刚开始如果没有使用docker pull将镜像拉下来的话,执行上述命令会提示没有找到镜像,会首先将镜像pull下来,这就会遇到一个国内Docker源下载非常慢的问题,推荐的解决办法是使用DaoCloud,会大大加快下载镜像的速度。
使用官方源:
使用DaoCloud源:
通过命令sudo docker run -it centos:6 /bin/bash,会启动一个新的shell,并运行在容器环境中。由于是一个交互式容器,所以当离开当前的shell,被这个新的shell带入到容器的虚拟世界中,此后会在这个shell里面执行的任何命令,都是相对于这个虚拟世界的。
当在新的shell里面执行exit,就结束了这个bash进程,从而也结束了这个容器,这样就从虚拟世界又返回到宿主机的现实世界。
交互式容器适合一些临时性的任务,当退出bash的时候,交互式容器的生命也将结束。大多数场合,需要的是守护式容器。通过如下方式运行守护式容器:
sudo docker run -d daocloud.io/daocloud/dao-redis:master-init
-d 创建守护式容器。
没有指定命令,那么就会使用镜像所提供的默认命令。redis镜像的默认命令是/run.sh。
Note:
守护式容器运行在后台,这样就可以继续留在当前的shell进行其他操作 。
docker ps:
通过docker ps命令可以查看容器的基本信息,包括容器ID、命令、状态等。
sudo docker ps:
docker inspect:
docker ps命令只能查看容器的基本信息;docker inspect命令则可以查看容器的详细信息。
sudo docker inspect [容器ID]:
Note:
docker inspect返回的信息是JSON格式的 。
docker inspect -f:
可以指定查看某种信息,例如查看容器的IP:
sudo docker inspect -f '{{.NetworkSettings.IPAddress}}' [容器ID]
docker stop:
docker stop命令用来停止一个正在运行的守护式容器(如果想快速停止可以使用docker kill)。
sudo docker stop [容器ID]
docker rm:
容器停止后,不会被删除,docker rm命令用来删除容器。
sudo docker rm [容器ID]
Note:
删除完之后,再次运行sudo docker ps -a,容器已经消失了。
docker logs
使用docker logs查看容器日志:
sudo docker logs [-f] [-t] [--tail] [容器ID]
-f--follows=true | false 默认为false。
-t--timestamps=true | false 默认为false。
-tail="all" 。
docker top:
使用docker top查看守护式容器内进程。
sudo docker top [容器ID]
docker exec:
使用docker exec在运行的守护式容器内启动新进程。
sudo docker exec [-d] [-i] [-t] [容器ID] [COMMAND][ARG...]
注意:启动交互式容器后,可以使用Ctrl + P和Ctrl + Q组合将交互式容器转为守护式容器,之后可以使用docker attach命令将守护式容器转为交互式容器。
推荐阅读
>>>新手必备-Linux系统安装配置+Xshell远程连接
运维界升职加薪必备的云计算技术,你学了吗?
学完高级运维云计算课程之后,你可以:
跨越90%企业的招聘硬门槛
增加70%就业机会
拿下BAT全国TOP100大厂敲门砖
体系化得到运维技术硬实力
技术大佬年薪可达30w+