容器是一种轻量级 可移植 并对应用程序打包的技术
容器依赖镜像
容器和虚拟机相同点:
- 都会对物理硬件和资源消耗
- 生命周期相似
- 容器和虚拟机都可以安装redis mysql nginx 虚拟机和容器的创建后都会存放在宿主机 linux
/var/lib/docker/containers下
容器和虚拟机不同点:
- 容器!=虚拟机
- 虚拟机创建和关闭都基于一个完整系统,一个虚拟机就是一个完整系统,容器运行在宿主机内核上
- 容器是轻量级 虚拟机重量级 资源消耗,硬件上能开很多容器,docker运行在虚拟机上
镜像操作:
创建:
docker create centos ls -a -t 分配一个TTY -i 保持STDIN打开
查看容器:
docker ps 没运行 docker ps -a 全部
删除
docker rm c532 -f 强删
起别名:
docker create --name centos-test centos
启动:
docker start -ai python-new
创建运行:
docker run == docker create + docker start -a 前台模式
docker run -d == docker create + docker start 后台模式
停止:
docker stop c512 参数-t int
docker kill xxxxx 参数 -s SIGTERM GIGKILL
暂停
docker pause ece 取消暂停 docker unpause ece
重启
docker restart xxxx -t
运行完自动删除
docker run -dit --rm f7e 执行 docker stop xxx 就删除了
容器详细信息查看
docker inspect d64 docker inspect -f "{{ json .NetworkSettings.Networks.bridge }}" d64
查看日志
docker logs d37b07536f85 -f 动态查看 -t 显示时间
修改容器名称
docker rename de3d test
容器运行操作
docker attach xxxxx
可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。
docker exec dcc4 ps -A -d -w 切换目录
后台运行 在运行的容器中执行命令 exec执行后,会命令执行返回值