赞
踩
小结图:
docker version
docker info
查看docker信息,client和server(包括容器里面哪个服务执行、暂停、停止)
docker --help(docker 【命令】--help)
docker里面所有的命令代码
docker stats
查看cpu和内存的情况
Options:
-a, --all 展示所有镜像
-q, --quiet 只显示镜像的id
Options:
-f, --filter filter 可选项,通过搜藏来过滤
例:PS C:\Users\41074\Desktop> docker search centos
说明:默认是最新的版本
☆指定版本下载:docker pull 【服务】: 【版本】
docker rmi -f 镜像id
说明:删除指订的镜像
docker rmi -f 镜像id 镜像id 镜像id
说明:删除多个指订的镜像,使用空格断开
docker rmi -f $(docker images -aq)
说明:删除全部镜像
1.例:
PS C:\Users\41074\Desktop> docker pull mysql:5.7
2.例:
通过函数,递归全部删除镜像
PS C:\Users\41074\Desktop> docker rmi -f $(docker images -aq)
说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
docker pull centos
docker run [可选参数] image
·参数说明:
--name="Name" 容器的名字
-e 环境配置
例: docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080:8080
-p ip:主机端口 : 容器端口
-p 主机端口 : 容器端口 (常用)
-p 容器端口
容器端口
-P(大写p) 随机指定端口
·测试:启动并进入容器
PS C:\Users\41074\Desktop> docker run -it centos /bin/bash
[root@ec3a9d25ed6c /]# ls //查看容器内的centos,基础版本,很多命令都是不完善的!
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
PS C:\Users\41074\Desktop>
docker ps //查看运行中的容器
-a //查看运行中+运行过的容器(历史记录)
-n=? //显示最近创建的容器
-q //只显示容器的编号
例:
PS C:\Users\41074\Desktop> docker ps -aq
ec3a9d25ed6c
84c9249ee2fb
3cb952fd1825
9b061ea8b769
d59ab6d3dd89
PS C:\Users\41074\Desktop> docker ps -aq -n=2
ec3a9d25ed6c
84c9249ee2fb
·直接停止并退出
例:[root@ec3a9d25ed6c /]# exit //从容器退回到主机
exit
·容器不停止退出
Ctrl + P + Q
docker rm 容器id //删除指定的容器,不能删除正在运行的容器,如果强制删除就是 rm -f
docker rm -f $(docker ps -aq) //删除所有的容器
docker ps -a -q|xargs docker rm //删除所有的容器
docker start 容器id //启动容器
docker restart 容器id //重启容器
docker stop 容器id //停止当前正在运行的容器
docker kill 容器id //强制停止当前容器
docker exec -it 容器id /bin/bash //相当于开启新的终端
docker attach 容器id //以前有进程就进以前的进程,没有就新开启一个终端
1.后台启动容器
命令 docker run -d 镜像名!
例:docker run -d centos
注意:
问题,docker ps ,发现centos停止了
常见的坑,docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
2.查看日志命令
docker logs -f -t --tail 容器,没有日志
~自己编写一段shell脚本
"while true;do echo kuangshen;sleep 1;done"
~在后台运行脚本
docker run -d centos /bin/bash -c "while true;do echo gao;sleep 1;done"
~查看日志
docker logs -tf --tail 10 914ce91afb14
--tail 10:表示显示最新10条日志
-t:显示时间
-f:输出日志
3.查看容器中进程信息
docker top
PS C:\Users\41074\Desktop> docker top linux
UID PID PPID C STIME TTY TIME CMD root 1977 1958 0 02:07 ? 00:00:00 /bin/bash
4.查看容器元数据
docker inspect 容器id
5.进去当前正在运行的容器
# 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置 # 命令: docker exec -it 容器id bashShell #相当于容器开启一个新的终端,可以在里面操作(常用) docker attach 容器id #进入容器正在执行的终端,不会启动新的进程! # 测试: PS C:\Users\41074\Desktop> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c1ef845bb3c3 centos "/bin/bash" 18 hours ago Up 6 seconds linux PS C:\Users\41074\Desktop> docker exec -it linux /bin/bash [root@c1ef845bb3c3 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@c1ef845bb3c3 /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 03:25 pts/0 00:00:00 /bin/bash root 15 0 0 03:25 pts/1 00:00:00 /bin/bash root 30 15 0 03:25 pts/1 00:00:00 ps -ef # 方式二: PS C:\Users\41074\Desktop> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c1ef845bb3c3 centos "/bin/bash" 18 hours ago Up 4 minutes linux PS C:\Users\41074\Desktop> docker attach linux [root@c1ef845bb3c3 /]# 正在执行当前的代码...
6.从容器内拷贝文件到主机上
docker cp 容器id:文件位置 要放的位置 查看当前主机目录 PS C:\Users\41074\Desktop> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c1ef845bb3c3 centos "/bin/bash" 18 hours ago Up 4 minutes linux PS C:\Users\41074\Desktop> docker attach linux [root@c1ef845bb3c3 /]# docker ps bash: docker: command not found [root@c1ef845bb3c3 /]# read escape sequence PS C:\Users\41074\Desktop> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c1ef845bb3c3 centos "/bin/bash" 18 hours ago Up 13 minutes linux # 进入docker容器内部 PS C:\Users\41074\Desktop> docker attach linux [root@c1ef845bb3c3 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@c1ef845bb3c3 /]# cd home [root@c1ef845bb3c3 home]# ls #在容器内新建一个文件 [root@c1ef845bb3c3 home]# touch test.java [root@c1ef845bb3c3 home]# ls test.java [root@c1ef845bb3c3 home]# exit #将文件copy到目标文件 PS C:\Users\41074\Desktop> docker cp c1ef845bb3c3:/home/test.java D:\ #拷贝是一个手动过程,未来我们使用 -v 卷的技术,可以实现自动同步
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。