学习目标:
说出 Docker容器的定义和作用
应用 Docker容器的基本操作
容器简介
容器是什么?
容器就类似于我们运行起来的一个操作系统,而且这个操作系统启动了某些服务。
这里的容器指的是运行起来的一个Docker镜像。
查看、启动
这一节,我们从容器查看、启动两个方面来学习。
查看容器
命令格式:docker ps
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
注意:
管理docker容器可以通过名称,也可以通过ID
ps是显示正在运行的容器, -a是显示所有运行过的容器,包括已经不运行的容器
启动容器
守护进程方式启动容器
命令格式:docker run <参数,可选> [docker_image] [执行的命令]
让Docker容器在后台以守护形式运行。此时可以通过添加-d参数来实现
docker run -d nginx
启动已终止的容器
在生产过程中,常常会出现运行和不运行的容器,我们使用 start 命令开起一个已关闭的容器
命令格式:docker start [container_id]
关闭、删除
这一节,我们从容器关闭、删除这两个方面来学习
关闭容器
在生产中,我们会以为临时情况,要关闭某些容器,我们使用 stop 命令来关闭某个容器
命令格式:docker stop [container_id]
关闭容器id
docker stop 8005c40a1d16
删除容器
删除容器有两种方法:
正常删除 -- 删除已关闭的
强制删除 -- 删除正在运行的
正常删除容器
命令格式: docker rm [container_id]
docker container prune
删除已关闭的容器
docker rm 1a5f6a0c9443
强制删除运行容器
命令格式:docker rm -f [container_id]
删除正在运行的容器
docker rm -f 8005c40a1d16
删除部分容器
docker container prune --filter "until=24h"
拓展批量关闭容器
命令格式:
docker rm -f $(docker ps -a -q)
进入、退出
这一节,我们从容器进入(三方法)、退出两个方面来学习。
进入容器我们学习两种方法:
1、创建容器的同时进入容器
2、手工方式进入容器
创建并进入容器
命令格式:docker run --name [container_name] -it [docker_image] /bin/bash
~]# docker run -it --name sswang-nginx nginx /bin/bash
root@7c5a24a68f96:/# echo "hello world"
hello world
root@7c5a24a68f96:/# exit
exit
docker 容器启动命令参数详解:
--name:给容器定义一个名称
-i:则让容器的标准输入保持打开。
-t:让docker分配一个伪终端,并绑定到容器的标准输入上
/bin/bash:执行一个命令
退出容器:
方法一:exit
方法二:Ctrl + D
手工方式进入容器
命令格式:
docker exec -it 容器id /bin/bash
效果演示:
docker exec -it d74fff341687 /bin/bash
基于容器创建镜像
提交方式:
命令格式:
docker commit -m '改动信息' -a "作者信息" [container_id] [new_image:tag]
命令演示:
进入一个容器,创建文件后并退出
./docker_in.sh d74fff341687
mkdir /sswang
exit
创建一个镜像
docker commit -m 'mkdir /sswang' -a "sswang" d74fff341687 sswang-nginx:v0.2
查看镜像
docker images
启动一个容器
docker run -itd sswang-nginx:v0.2 /bin/bash
进入容器进行查看
./docker_in.sh ae63ab299a84
ls
日志、信息
这一节,我们从日志、详细信息两方面来学习。
查看容器运行日志
命令格式:
docker logs [容器id]
命令效果:
docker logs 7c5a24a68f96
查看容器详细信息
命令格式:
docker inspect [容器id]
命令效果:
查看容器全部信息
docker inspect 930f29ccdf8a
查看容器网络信息
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 930f29ccdf8a