docker基本使用
前言: docker的管理分为两部分, 一部分是镜像的管理, 一部分是容器的管理.
从docker官网pull下来的称为镜像, 镜像运行后会产生容器
在执行查看命令时可加入 --no-trunc参数来显式完整信息.
镜像的管理(命令: docker images)
1. 拉取一个镜像
docker pull centos -- 拉取centos镜像到本地
2. 查询本地所有镜像
docker images ls -- 查看所有镜像
docker images -q -- 只显式镜像id
docker inspect id -- 查看指定id的镜像详细信息
3. 删除镜像
docker images rm id -- 删除指定id的镜像
docker images rm `docker immages -q` --删除所有镜像
4. 导入导出镜像
docker images save name > /home/xx.tar -- 导出name镜像为压缩包
docker images load -i /home/xx.tar -- 导入压缩包为一个镜像
5. 给没有tar的镜像打tar
docker images -tar name:xx id --给指定id的镜像打标签, name为镜像的新名称, xx是标签. 如果镜像已有tar, 则会生成一个新镜像.
启动一个镜像(两种方式)
1. docker container run -it --name "xx" centos -- -it为交互式启动centos镜像(启动后会自动进入), --name为给容器设置的名字, 不指定会随机生成一个.
交互式启动的容器, 会在退出后自动销毁掉. 多用于测试,开发环境
docker container run -it --name "xx" --rm centos -- 多加入了--rm参数, 作用是当退出该交互式容器后, 该容器会自动销毁并自动删除, 不留痕迹
2. docker container run -d --name "xx" centos -- 以守护方式运行一个容器. container可省略.
守护式启动的多用于服务类的容器. 启动后默认只能宿主机访问该容器, 其它平台无法访问.
docker container run -d --name "xx" -p 8080:80 centos --添加-p参数, 用于指定宿主机端口和容器端口的映射.
3. docker container run --restart=always -d --name......... -- restart=always参数作用, 重启docker后能自动拉起使用该参数启动的容器(默认重启后之前运行的所有容器都挂了)
方式二: 修改docker配置文件, 添加 "live-restore": true
容器的管理(docker container, container可省略)
1. 查看一个容器的详细信息:
docker container inspect name
2. 查看容器
docker container ls -a -- 查看所有运行过的容器, 含已销毁的容器, 等价于docker ps -a, 早期的用法
docker container ls -- 查看正在运行中的容器.
docker container ls -a -q --只查看所有容器的id.
3. 删除销毁的容器
docker container rm name
docker rm $(docker ps -q -f status=exited) --删除所有已退出的容器
4. 重新启动一个销毁的容器
docker container start -i id -- -i表示启动后进入该容器
5. 关闭一个运行中的容器
docker container stop id
6. 连接一个运行中的容器
docker container attach name --此种方式只能连接一个, 连接多个时会同步操作
(可理解为连入原来的bash窗口, 断开了就是彻底断开了)
docker container exec -it name /bin/bash -- 已子进程方式连接到一个容器, 后边的.bin/bash必不可少
(可理解为以新bash窗口连接, 断开了一个不影响其它的.)
7. 查看容器中运行的进程信息
docker container top id -- 查看id对应容器的进程信息.
docker container logs id -- 查看id对应容器的日志信息
docker container logs -f id -- 一直监控日志, 等同于linux中的tail -f命令
docker container logs -tf --tail 10 t表示显式时间戳, --tail可指定查看多少条(倒数)
8. 所主机与容器之间的文件拷贝
docker container cp 拷贝谁 到哪里 --涉及到容器时要注意格式: name:路径; 如 ....cp name:/data/file ./file