美文网首页
docker学习

docker学习

作者: 河神 | 来源:发表于2020-05-31 13:38 被阅读0次
  • 安装
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 .
    # 构建镜像,最后的 . 代表本次执行的上下文路径,


  1. RUN使用:
RUN <命令行命令>
 <命令行命令> 等同于,在终端操作的 shell 命令。
RUN ["可执行文件", "参数1", "参数2"]
 例如:
 RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline
  1. 上下文路径
上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。

解析:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。
实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。

如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。

注意:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。

相关文章

网友评论

      本文标题:docker学习

      本文链接:https://www.haomeiwen.com/subject/rxglzhtx.html