栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【docker从0入门 学习笔记】基础篇

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【docker从0入门 学习笔记】基础篇

基础篇
  • (一)docker基础入门
    • 1.docker概述
      • 1.1 名词解释
      • 1.2 docker的安装
    • 2.docker常用命令
      • 2.1 镜像命令
      • 2.2 容器命令
      • 2.3 常用其他命令
    • 3.commit一个镜像到本地
  • (二)docker-容器数据卷
    • 1.概述
    • 2.写在dockerfile中的挂载信息
    • 3.数据卷容器
  • (三)dockerfile
    • 1.概述
    • 2.dockerfile 构建过程
    • 3.dockerfile常用命令
    • 4.发布镜像

前言:

学习一样东西总是用来解决实际问题的。以前自己在家开发分布式应用的时候,由于总是要依赖很多中间件、数据库(eg:redis、mysql、mq、sleuth)等环境。刚开始我会在在自己电脑安装这些环境,每次重启电脑都要去重启这些环境,特别麻烦。后来我把所有环境都放到虚拟机里面,这样每次重启电脑只需要打开挂起的虚拟机就能一次性部署好所有的环境依赖。后面又迎来了新的问题,我只能在这一台我部署好虚拟机环境的电脑开发,如果遇到使用其他电脑就没办法开发了。于是我需要采用一种新的方式去解决这个问题。-----依赖docker与docker hub可以随时去拉取我特定的开发环境。

(一)docker基础入门 1.docker概述

​ docker(go语言开发)是基于硬件层面的容器化技术,解决了虚拟机消耗硬件资源大的痛点,是一种轻量化的虚拟机(内核级别的虚拟化)。一个容器可以由我们自定义环境,并且容器是可复制可迁移的可发布云端的,这样的特性广泛使用在服务端的**“弹性、负载、容灾”**。并且由于容器化的成熟,推动devops的快速发展,解决传统开发人员与运维人员之间的磨擦点。

​ 文档地址

​ 仓库地址

​ 本文将讲解docker的基础使用。

1.1 名词解释
名词解释说明
镜像(image)docker镜像是一个模板,通过这个模板来创建多个容器服务
容器(container)Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的
仓库(repository)存放镜像的地方,类似maven仓库。分为共有和私有
1.2 docker的安装

参考:菜鸟教程-docker安装

2.docker常用命令

命令帮助文档

2.1 镜像命令

https://docs.docker.com/engine/reference/commandline/images/

命令说明
docker images查看本地所有镜像
docker search搜索仓库中的镜像
docker pull下载镜像
docker rmi删除镜像
2.2 容器命令

https://docs.docker.com/engine/reference/commandline/container

命令说明
docker run[可选参数] image新建容器并启动
–name 容器名字
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器端口 e g:8080:8080
docker ps查看所有正在运行的容器
-a 会显示历史运行过的容器
-n=? 显示最近创建的容器
-q 只显示容器的编号
exit停止退出交互模式容器
Ctrl + P + Q不停止退出容器
docker rm删除容器(不能删除正在运行的容器,需要加-f)
docker rm -f $(docker ps -aq) 删除所有容器
docker start [container id]启动容器
docker restart [container id]重启容器
docker stop [container id]停止当前运行容器
docker kill [container id]强制停止当前容器
2.3 常用其他命令
命令说明
docker logs查看日志
docker top查看容器中进程信息
docker inspect查看容器元数据
docker exec -it [容器id] /bin/bash进入当前正在运行的容器(新的终端)
docker attach进入当前正在运行的容器(容器正在执行的终端)
docker cp 容器id:容器内路径 目的主机路径从容器内拷贝文件到主机
3.commit一个镜像到本地

命令:

docker commit -a="作者名" -m="commit info" [容器id] [镜像名称]:[TAG版本]
(二)docker-容器数据卷 1.概述

简单来说就是解决将容器中的数据保存到本机的问题(或者容器之间的数据互通问题),实际内容就是将容器目录挂在到本机目录。

命令:

docker run -v 主机目录:容器目录

通过我们都会使用这个,将数据存储不放在容器中(因为一旦替换了会导致数据丢失),数据放在专门存储数据的地方,容器是负责功能。

# 查看docker所有的数据卷挂载信息
docker volume
2.写在dockerfile中的挂载信息

命令:

...
# 这个地方使用的是匿名挂载 使用inspect可以查看到具体挂载信息;
VOLUME ["volume01", "volume02"]
...
3.数据卷容器

实现容器之间数据同步

容器2 继承 容器1的挂载配置

docker run --name [容器2] --volumes-from [容器1] 
(三)dockerfile 1.概述

Dockerfile 就是用来构建 docker 镜像的构建文件。

docker build -f [dockerfile文件地址] -t [镜像名称]:[版本] 
  • 如果dockerfile文件名是“Dockerfile”,可以不用-f指定,默认加载
2.dockerfile 构建过程
  1. 编写dockerfile
  2. docker build
  3. docker run
  4. dockers push
3.dockerfile常用命令
FROM         #基础镜像,基础镜像必须是小写,否则会 invalid reference format: repository name must be lowercase
MAINTAINER    #维护者信息
ADD            #往镜像中添加
COPY        #类似ADD,往镜像中拷贝东西
RUN            #构建时运行的指令
CMD            #启动时默认运行的指令,如果指定了其他执行命令或者用了ENTRYPOINT,CMD就不会执行
ENTRYPOINT    #容器启动时运行的指令,追加
onBUILD        #这个镜像被继承时,触发的动作
ENV            #设置镜像的环境变量
WORKDIR        #指定镜像的工作目录,进去容器默认的目录
EXPOSE        #暴露端口
VOLUME        #卷挂载,无法指定宿主机的对应目录,只能随机生成,VOLUME ["/data1","/data2"]
4.发布镜像

DockerHub

docker login [仓库地址]        #登录仓库,不带地址默认为docker hub,带地址则表示登录登录指定仓库,一般后者用的多
docker logout                #登出
docker save                    #保存镜像到本地,比如备份成tar包
docker tag 镜像id                #给镜像重新打tag
docker push
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659179.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号