- 安装
yum install docker-io –y
systemctl start docker
docker info
- 命令
docker [run|start|stop|restart|kill|rm|pause|unpause]
#容器生命周期管理
docker [ps|inspect|top|attach|events|logs|wait|export|port]
#容器操作运维
docker [commit|cp|diff]
#容器rootfs命令
docker [login|pull|push|search]
#镜像仓库
docker [images|rmi|tag|build|history|save|import]
#本地镜像管理
docker exec -ti $1 /bin/bash
#进入docker容器内部
- 简单使用
docker search 镜像名称
docker images
docker pull image_name
docker pull image_name:tag
#image_name:表示镜像的仓库源名称,TAG:镜像的标签 如果不指定tag 那么默认用最新的
docker rmi 镜像名称/镜像ID
docker rmi -f 镜像名称/镜像ID
#强制删除 如果镜像有容器在运行 那么就需要强制删除 增加 -f 参数
docker run -d --name "xiaoxiao" -p 5672:5672 -p 15672:15672 -v /home/dock/Downloads:/usr/Downloads:ro rabbitmq:management
#-d 后台运行
#-p 端口映射 (可以有多个 因为该镜像可能存在多个端口)
#通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。默认挂载的路径权限为读写。如果指定为只读可以用:ro
#rabbitmq:management (格式 REPOSITORY:TAG),如果不指定tag,默认使用最新的
#--name 给该容器取个名字
- 数据卷
Docker管理宿主机文件系统的一部分,默认位于 /var/lib/docker/volumes 目录中;
docker volume create edc-nginx-vol // 创建一个自定义容器卷
docker volume ls // 查看所有容器卷
docker volume inspect edc-nginx-vol // 查看指定容器卷详情信息
#使用 -v edc-nginx-vol:/usr/share/nginx/html 在run容器的时候就可以把数据卷挂载
docker stop edc-nginx // 暂停容器实例
docker rm edc-nginx // 移除容器实例
docker volume rm edc-nginx-vol // 删除自定义数据卷
- tag
docker commit -m '测试' -a 'heShen' 35f2d8da9f3a heshentest:v1
// 其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;-a 可以指定更新的用户信息;
//之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。
//使用 docker images 来查看新创建的镜像。
- 保存镜像为文件
//保存镜像为文件
docker save -o 要保存的文件名 要保存的镜像
//从文件载入镜像
docker load --input 文件
docker load < 文件名
- Dockerfile使用
1. 新建 Dockerfile 文件
2. 添加
FROM nginx
#FROM:定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx
RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html
#RUN:用于执行后面跟着的命令行命令
3. docker build -t nginx:test .
# 构建镜像,最后的 . 代表本次执行的上下文路径,
- RUN使用:
RUN <命令行命令>
<命令行命令> 等同于,在终端操作的 shell 命令。
RUN ["可执行文件", "参数1", "参数2"]
例如:
RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline
- 上下文路径
上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。
解析:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。
实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。
如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。
注意:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。
网友评论