目录
一.运行容器
docker run [options] IMAGE [command] [arg...]
[command] [arg...] 指出了运行容器的时候运行哪些命令
1.以服务类型的命令
需要镜像有相关的服务,切服务支持前台运行
如 Nigix ,mysql
docker run -d(宿主机后台运行) -i(标准输入)t(分配一个tty) nginx(IMAGE)
虽然没有指出命令,但镜像默认提供了默认的命令
2.shell命令
如tail 命令 (可以让容器一直运行)
3.脚本
可以在容器启动的时候执行比较多的操作(如修改配置文件,启动其他服务)
容器状态:
created :容器被创建成功但是由于启动参数错误等原因没有启动
up:正常运行的状态
exited :回收掉的容器(已经停止的容器)
总结:启动容器的时候,必须要有一个可以长期运行的程序(命令,服务,脚本)
在同一个宿主机上,容器的名称是不能重复的,端口映射也不能重复
二.退出容器
1.exit
执行后容器就退出(注销)
2.ctrl+p+q
退出容器不注销
三. 显示正在运行的容器
docker ps
docker ps -a : 显示所有的容器
四.删除容器
docker rm -f(强制删除) -v(删除数据目录) IMAGE_ID
五.端口映射
1.随机端口映射
docker run -P(大写)---不推荐使用
2.固定端口映射
docker run -p(小写) 80(宿主机):80(容器) IMAGE
六.容器的启动和关闭
启动: docker start image_id/name
关闭: docker stop image_id/name
七.如何进入正在运行的容器
docker exec -it IMAGE_ID [COMMAND](如bash)
执行单次命令进入容器
nsenter
推荐使用,nsenter命令需要通过PID进入到容器内部,不过可以使用docker inspect 获取容器的PID
docker inspect -f"{{.NetworkSettings.IPAdress}}"
docker inspect -f "{{State.Pid}}" IMAGE_ID
八.镜像操作
1.检索
docker search 关键字。一般不根据检索的结果进行拉取,而是在DockerHub上进行搜索。
docker search redis
2.拉取
docker pull 镜像名:tag(tag是可选的,tag表示标签,多为软件的版本,默认是latest)
docker pull mysql:5.7
3.列表(查看本地所有镜像)
docker images
4.删除(删除指定的本地镜像)
docker rmi image-id