Docker入门学习

Docker入门学习

一、理论知识

1.什么是Docker,为什么用Docker

他是一个开源的应用程序引擎。

因为方便,我理解的几方面:

  1. 不需要管运行环境,生成镜像都是带环境的,拉取完镜像后直接可运行。
  2. 通用性,只要支持Docker的平台,安装Docker后都可以运行。
  3. 管理方便,Docker compose k8s。

2.Docker三核心

  • 镜像:说白就是应用程序文件(类似于ISO镜像文件),分层存储。

  • 仓库:镜像的存储位置:一般的镜像都在docker hub,也有私人的镜像地址(阿里云,或者自己用docker-registry搭建)

  • 容器:镜像运行的实体/环境(实质是宿主机的一个进程),分层存储

    疑问:docker中一个容器只有一个镜像吗?

    答:是的,一个容器内只有一个镜像,一个镜像可以有多个应用程序。但是一个镜像可以对应多个容器,被多个容器启动。一个镜像可以包含多个应用程序。

3.Docker常见命令

1. #### docker
systemctl enable docker  //开机启动
systemctl start docker   //启动Docker
docker run ...   //在一个新的容器中执行一条命令
2. #### 操作镜像
docker search image-name //搜索镜像
docker pull image-name  //拉取镜像
docker images  //查找本地有哪些镜像
docker rmi image-name:version //删除本地某镜像
3. #### 操作容器   
docker ps  //查找当前运行的容器
docker ps -a  //查找所有历史容器
docker stop/start/kill/restart  Name/containerId   //停止/启动/杀死/重启 容器
docker rm containerId  //删除容器

二、实际操作

1.如何安装Docker

sudo yum install docker-ce

2.启动Docker

# 开机自启
 systemctl enable docker 
# 启动docker服务  
 systemctl start docker

3.Docker镜像加速配置

该操作是因为docker hub国外网站下载速度慢/无法下载。使用配置中的国内网站下载更快。

1.新建文件
   touch /etc/docker/daemon.json

2.在文件里面写入:
{ "registry-mirrors":[

         "http://docker.mirrors.ustc.edu.cn",

         "http://hub-mirror.c.163.com",

         "http://registry.docker-cn.com"

    ],"insecure-registries":["192.168.40.89:5000"]
}

3. 重启docker生效
 systemctl daemon-reload(-前没有空格)
 systemctl restart docker

4.用Doccker运行公开应用程序(示例)

Confluence是一个企业常用的文档管理平台(可以试用,长期得收费)。以下来自网站confluence搭建教程。

  1. 确认安装Docker较高版本(19以上)

  2. 运行confluence(会自动拉取镜像)

    docker run -d --name confluence -p 8090:8090 --user root:root cptactionhank/atlassian-confluence
    

    如果出现docker: Error response from daemon…,下载问题。需要配置docker镜像加速配置

  3. 进入confluence setup页面:192.168.40.86:8090(如果进不去,看是否防火墙是否放行8090)

5.Docker管理个人应用程序(jar包等)

  1. 用DockerFile构建私人镜像 ,并运行该私人java项目

    a.准备私人测试项目 位置为: /mnt/xctest1.0.jar

    新建 /mnt/springbootfile文件,文件内容为:

    #父级镜像
    FROM java:8
    #作者信息 作者名称  邮箱
    MAINTAINER XYH <xuyuanhao12138@gmail.com>
    #指定挂载点(备份的位置,防止丢失)
    VOLUME  /tmp
    #将主机上的文件(Dockerfile的相对路径)或者网络文件添加到镜像中,我的测试项目为xctest-1.0.jar,添加为app.jar
    ADD xctest-1.0.jar  app.jar
    #用来执行命令:新建文件
    RUN bash -c 'touch /app.jar'
    #启动容器时默认运行的命令
    ENTRYPOINT ["java", "-jar","/app.jar"]
    

    b.构建镜像

    docker build -f /mnt/springbootfile -t xctest:1.0 . //(构建镜像,注意后面有空格点)
    

    c.启动镜像

    docker run -d -p 8001:8001  xctest:1.0   
    
  2. 构建私有仓库并上传

    工具:docker-registry (以下是没有密码的私有仓库,设置密码暂无)

    #运行docker-registry(默认地址:/var/lib/registry)(设置密码:使用htpasswd,certs证书,暂无)
    docker run -d -p 5000:5000 --restart=always --name registry registry 
    
    #标记为带ip和端口号的镜像名称
    docker tag xctest:1.0 192.168.40.89:5000/xctest:1.0
    
    #登录(没有密码就不用登陆)
    docker login 192.168.40.89:5000
    
    #上传
    docker push 192.168.40.89:5000/xctest:1.0
    
    #查看私有仓库
    curl 192.168.40.89:5000/v2/_catalog
    

    注意:上传时推送不成功,出现https相关问题,因为 Docker 默认不允许非 HTTPS 方式推送镜像:解决:

    在本地 /ect/docker/daemon.json 添加

    “insecure-registries”:[“192.168.40.89:5000”]

6.容器管理

  1. Docker Compose

    定义和运行多容器 Docker 的应用程序工具

  2. k8s

    Kubernetes,是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能(管理多个docker)

仅作为个人学习记录。
引用内容太多,记不住了。如有侵权请告知。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值