- 恍惚间满眼星河,不对,那其实是你
为什么要docker
之前需要运行环境 需要把虚拟机一起打包 才能模拟同样的环境,不让运维和开发因为运行环境配置不同而打架。
现在直接打包docker相关资源就可以将 相同的运行环境 配置在各种虚拟机,服务器上面。
镜像
相当于 java 中的类 。相当于模板,镜像可以打包。一个镜翔可以创建多个容器 。镜像也可以打包所有容器形成一个镜像文件 ,将这个镜像文件放在别的docker上面也可以跑起来。
容器
相当于java实例对象,可以启动多个容器,可以看作一个简易的linux ,可以放置redis ,mongodb ,mysql,一个容器只能装一种软件 。
docker命令
帮助,启动,停止,类命令
- 启动docker: systemctl start docker
- 停止docker: systemctl stop docker
- 重启docker: systemctl restart docker
- 查看docker状态: systemctl status docker
- 开机自启 : systemctl enable docker
- 查看docker 概要信息:docker info
- 查看docker总体帮助命令:docker --help
- 查看docker命令帮助文档: docker 具体命令 --help
镜像
- 强制删除镜像: docker rmi - f 【镜像id / 镜像名】 (可以停止正在运行的镜像, rm -f 强制删除)
查看docker容量
- docker system df
docker 虚悬镜像
容器命令
- 启动交互式容器(前台命令行)
- docker ps -*
- 容器停止
- 一次性删除多个容器实例
1.docker rm -f $(docker ps -a -q)
-q:静默模式 只显示容器编号
2.docker ps -a -q | xargs docker rm
相当于遍历容器编号 , 让编号 为 i 的容器 +docker rm
docker ps -a -q 的结果集作为 xargs 的参数 - 进入活着的容器
1.开启容器后台运行 (启动容器守护模式)
docker run -d ubuntu
(例如后台启动 ubuntu ,但是dockers ps 后 容器直接退出了 , 这是docker 机制问题 docker 后台启动必须要有 一个前台进程 ,如果命令不是 top tail, 让容器一直挂起的命令 容器开启之后就会立即退出 ) - 查看容器日志
docker logs {容器id} - 查看容器内运行的进程
docker top {容器id} - 查看容器内部细节
docker inspect {容器id} - 重新进入容器实例 (先进入ubuntu容器控制台 ->ctrl+p+q:退出控制台 -》 docker attach {容器id} :重新进入容器 )
1.(会导致容器停止 一般不用 )docker attach {容器id}
attach :不会导致容器停止
exit 退出会导致容器停止
2.(先进入ubuntu容器控制台 ->ctrl+p+q:退出控制台 -》 docker exec -it 28dbff6fe74f /bin/bash
:重新进入容器 控制台)
exec 是在容器中打开新的终端,并且可以启动新的线程
exit退出不会导致容器停止
示例进入redis容器 :
docker exec -it af0527d27e40(redis容器id) /bin/bash
redis-cli -p 6379 进入redis控制台
[root@VM-4-14-centos ~]# docker exec -it af0527d27e40 /bin/bash
root@af0527d27e40:/data#
root@af0527d27e40:/data# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1
"v1"
- 容器数据拷贝主机