【docker学习笔记】
- docker ps 查看正在运行的容器列表
- docker info (docker version) 查看安装的信息
- docker --version 查看版本信息
- docker image ls 查看已下载的镜像
- docker container ls 列出正在运行的图像,(--all)将已退出的列出来,(-aq)all in quiet mode
- docker (container --help) 帮助页面
- docker run -p outport:inport image_name 将image_name镜像运行在计算机的outport端口
- docker run -d -p outport:inport image_name 后台运行模式
- docker container stop container_id 容器的id可在docker container ls中查看
- docker login 登录账号
- docker container kill container_id 强制关闭某个容器
- docker container rm container_id 删除容器
- docker container rm $(docker container ls -a -q) 删除所有容器
- docker支持使用ssh登陆,但是这违背容器只有一个进程的原则,一般使用自身工具进入容器
- docker attach container_id 进入容器,按 exit(ctrl+C) 关闭容器并删除,ctrl+P 再 ctrl+Q 可退出并且继续运行容器
- docker attach主要是查看信息,docker exec更适合用于在容器内运行指令
- docker exec [option] container_id [命令(/bin/bash)](-d后台运行命令,-i交互模式,-t分配一个tty,此时exit退出并且继续运行容器,通常使用-i或者-it
- docker export/import/save/load 导出容器/导入容器为镜像/导出镜像/导入镜像
- docker export container_id > /path/to/storage/name.tar
- docker import name.tar repository:tag 然后就会有一个名为repository,版本为tag的镜像出现
- docker stop container_id 发送终止信号正常关闭容器,容器内的程序可以捕捉该终止信号自行处理,甚至可以忽略该终止信号,kill命令是一定会使容器退出的
- docker kill -s [发送给容器的指令,默认为KILL] container_id
- docker inspect image_name|container_id 查看镜像或者容器的配置信息
- docker history image_name[:tag] 查看镜像的修改历史(docker image history image_name也行)
- docker image tag source_image_name:source_tag new_image_name:new_tag 建立一个镜像的引用
- docker images 列出所有镜像 (-f) 筛选器
- docker cp ~/主机文件 容器名|容器id:/容器文件夹名
- docker commit 容器名|容器id 镜像名:tag 把容器打包成镜像
- docker create --name container_name image:image_tag 创建一个不运行的容器
- docker container ls查看的是当前运行容器, -a查看所有容器,kill后的容器会被关掉但不会被删除
- docker diff container_name|container_id 把容器与创建该容器的镜像对比,可以查看到进行过哪些改动(A是添加操作,D为删除操作,C为修改操作)
- docker build [options] path|url|- 从Dockerfile中创建一个镜像,-c 控制cpu使用,-f 指定Dockerfile文件,-m 设置构建内存上限,-q 静默构建,-t 构建的镜像的标签。
另:
镜像里不能出现两个名字一样标签也一样的镜像,亲测是这样
一个容器一般只运行一个进程,进程结束时容器会停止运行,导致我每次运行 ubuntu 镜像时,它都自动结束并且返回0值,这个时候运行应该用 docker run -itd --name ubuntu ubuntu:lastest 运行并进入进行交互操作,放置到后台运行用 ctrl+p ,ctrl+q 两次快捷键,再次进入用 docker exec -it ubuntu /bin/bash 或者直接 docker attach ubuntu
attach 和 exec 的区别大概就是进入进程和进入服务器的区别,docker attach nginx 则会跳转到 nginx 这个容器内并且持续观察这个进程有没有输出点什么东西,同时也可以输入自己的东西与这个进程交互,但是由于nginx运行没有什么输出,所以我们观察不到什么,nginx运行时无法输入内容,所以我们也无法进行任何命令操作,这时候就只能用 ctrl+c 退出并停止这个容器,因为连 ctrl+p 和 ctrl+q 都无效;docker exec -it nginx /bin/bash 能进入 nginx 这个容器,并且类似 shell 进行修改配置啥的一些操作(突发奇想试了一下shutdown和reboot,事实证明docker已经帮我们屏蔽了这些系统功能,防止了系统遭到攻击)
嘎嘎阿嘎嘎嘎嘎!!
沙雕吗同学
嘎嘎阿嘎!!