这里写目录标题
1.命令帮助
基本语法
docker 子命令 [选项] [参数]
命令帮助方式
docker --help
查看子命令帮助方式
docker 子命令 --help
# 如
docker run --help
还有官网
https://docs.docker.com/reference/
2.基本命令
与镜像相关
一批模板文件,不同的镜像可以包含的环境内容是不一样的,例如tomcat镜像
查看本地镜像有哪些
docker images

安装完docker之后,使用的run命令运行了一个hello-world容器,需要下载对应的镜像

搜索镜像
docker search
docker search mysql


如果我们想要了解更多的镜像,到官网镜像仓库
http://hub.docker.com
如何下载我们所需要的镜像文件
默认情况下是最新的(latest)
docker pull mysql
docker pull mysql:5.7
注:如果下载多个镜像之间有共享的数据层。那么不会重新下载,这样就节省了磁盘的空间
删除镜像
docker rmi(remove images缩写)进行删除
后面跟着镜像名称或者镜像Id
# 例如
docker rmi hello-world:latest
强制删除,如果某个镜像被容器使用或者这个镜像启动过某个容器,那么无法删除,可以使用-f
docker rmi -f d1165223232
容器有关
容器就是利用镜像文件创建的一个进程,运行镜像中定义的环境。镜像就像是模板,容器就是利用这个模板创建一个道具,产品
利用下载的镜像跑起来一个容器
docker run
例如:
调用客户端的run来运行这个容器,和我们平时使用的云主机或者虚拟机的centos7有区别,这是可以创建最小化依赖的centos7系统
docker pull centos:centos7
docker run -it centos:centos7 /bin/bash
run命令的选项

docker run -it centos:centos7 /bin/bash
docker run 运行了一个容器
-it:以交互模式开启一个终端
centos:centos7:使用这个镜像启动容器
/bin/bash:容器启动时,我们指定的一个运行的进程,centos这种镜像如果不指定,可能没有pid=1的进程时,容器启动立刻停止。

当前所在的命令提示符,内容发生了变化,证明现在所处客户端就是通过run运行时添加-t命令选项创建的虚拟客户端,客户端所在位置就是centos:centos7运行的容器内部。
docker ps
docker ps
容器启动之后,在宿主机通过ps命令可以查看启动和启动过的容器信息


ps常见选项

容器退出停止
对于我们创建出来的容器,主流在宿主机。可以通过两种方式进行容器的退出。
-
虚拟机客户端(run -t)运行退出(使得容器停止运行,但是并不是每次执行exit会一定停止容器,exit只会停止当前使用的那个命令脚本解释器进行/bin/bash)容器才会停止
-
ctrl+P+Q容器退出但是不停止
docker start 容器id #启动容器可以运行
docker stop 容器# 停止容器
docker restart 容器id # 重启容器
docker kill 容器# 强制停止容器
start 启动,对于那些没有任何持续进程运行的容器时启动不起来的,比如测试容器
hello -world echo “hello world”
docker rm
对于长时间不需要的容器,依然驻留在宿主机,是浪费资源的,只要镜像存在,随时可以启动需要的容器,所以这些容器可以删除,rm就是删除
docker rm id

在测试环境中,编辑镜像,创建容器后都是测试内容,经常会批量删除所有容器,这是偶可以配合嵌套一个ps的命令,使用-f进行删除
- -f强制删除容器,运行中的容器不可以直接删除,可以通过这选项进行删除所有容器(无论是启动的还是停止的)
docker rm -f $(docker ps -aq)
查看日志
docker logs
我们在运行一个容器之后,都会有容器的进程,这个进程会产生日志文件。比如tomcat,nginx这样的镜像。这时候调用docker logs的宿主机命令,可以查看对应的日志信息
docker logs -f -t --tail 10 id

run命令选项参数
-f:根据日志信息输出,比较类似于动态的查看日志
-t:显示时间戳
–tail 10:列出最近新的10条容器日志
进入容器
第一种方式attach
直接进入到一个虚拟终端,终端进程所在位置是这个容器正在运行的命令
例如
docker run -itd --name="volumn-demo2" tomcat:9.0 /bin/bash
docker ps
docker attach id
第二种方式exec
如果我们想要绕开这个容器中pid=1这个进程,进入容器中,可以使用exec的方式,另外指定进程。
docker exec -it 容器id 自定义开启另外的进程
docker exec -it id /bin/bash
进入容器中,容器中存在两个进程,一个是pid=1的catalina.sh运行,一个是我们单独开启的虚拟终端调用的/bin/bash

这个时候的退出只会把pid=33的bin/bash退出,不会影响tomcat容器中的catalina.sh运行,所以容器依然正常运行
docker cp
在容器运行过程中,如果想要从容器中把某个文件拷贝到宿主机,使用docker cp
例如
创建一个容器centos:centos7
docker run -itd centos:centos7 /bin/bash
docker attach bb845c98d7c9
mkdir /home/demo.txt
docker cp bb845c98d7c9:/home/demo.txt ./
cp 后面跟id ./宿主机目的地
用宿主机访问docker里面的启动容器
docker run -itd --name nginx-demo -p 80:80 nginx
-p是宿主机:docker容器的端口
crul localhost:80# 在宿主机上访问访问nginx
也可以通过windows的浏览器访问虚拟机地址加端口号
2187

被折叠的 条评论
为什么被折叠?



