写在前面

以下为docker学习总结,如果对您有帮助,还望点赞或评论,以便作者认识到问题,进而对文章进行更正和补充,感谢您。

目录

  • 背景
  • 一、添加下载源
  • 二、docker常用命令
    • 对容器
    • 对镜像
  • 三、镜像拉取与使用
    • ubuntu镜像的相关
    • Nginx镜像相关
    • Python镜像相关
  • 四、 镜像制作
  • 五、 数据卷挂载
  • 六、Dockerfile文件制作与使用
    • 实例
  • 七、Dockerfile发布到Dockerhub
  • 八、容器间通信
    • 1.计算机网络相关知识
    • 2.容器通信
  • Windows的docker网络学习一直遇到一些问题,为了更好跟视频学习,之后转到Ubuntu系统上了.
  • 参考资料

背景

Windows10下的Docker学习总结。

一、添加下载源

设置中的Docker Engine的json中添加

"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://3laho3y3.mirror.aliyuncs.com","https://mirror.ccs.tencentyun.com","http://f1361db2.m.daocloud.io"]

二、docker常用命令

对容器

  1. 查看所有容器:docker ps -a
  2. 查看在运行的容器:docker ps
  3. 启动容器:docker start container_ID
  4. 进入容器: docker exec -it container_ID /bin/bash

    docker attach container_ID

  5. 停止容器:docker stop container_ID

对镜像

  1. 查看镜像:docker images
  2. 删除镜像:docker rmi <image_id>
  3. 删除镜像(images):docker rmi <image_id>(通过镜像(images)的id来指定删除谁)
  4. 想要删除镜像(images)id为的image的话可以用:
    docker rmi $(docker images | grep "^<none>" | awk "{print $3}")(该名令为linux命令,Windows中直接面板中remove即可)
  5. 要删除全部镜像(images)的话
    docker rmi $(docker images -q)

Docker 容器使用:https://www.runoob.com/docker/docker-container-usage.html
删除容器和镜像相关命令:https://www.cnblogs.com/111testing/p/9715887.html

三、镜像拉取与使用

ubuntu镜像的相关

  1. 拉取
    docker pull ubuntu:16.04
  2. 创建交互式的容器
    docker run -i -t ubuntu:16.04 /bin/bash
  3. ubuntu开发环境配置
    更新apt:apt-get update
    安装sudo:apt-get install sudo
    安装:sudo add-apt-repository ppa:jonathonf/python-3.6
    安装python3:sudo apt-get install python3.6
    安装pip3:sudo apt-get install python3-pip
    安装依赖库:sudo apt-get install build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev
    参考
    Python笔记——Ubuntu下安装pip3和Python的第三方库
    Ubuntu:彻底卸载 Python
  4. 进入container:
    docker start 容器名#启动容器
    docker exec -it 容器ID bash#进入容器

Nginx镜像相关

  1. 拉取
    docker pull nginx
  2. 指定端口启动Nginx
    docker run -d --name nginx01 -p 3344:80 nginx

    -d 后台运行
    -p 宿主机端口:容器内部端口,将容器80映射到主机3344端口,即主机通过3344端口即可访问容器内80端口
    –name 容器命名为nginx01

  3. 测试: curl localhost:3344
  4. 进入nginx:
    docker exec -it nginx01 /bin/bash

Python镜像相关

  1. 拉取
    docker pull python:3.6
  2. 创建交互式的容器
    docker run -i -t python:3.6 /bin/bash

    猜测:进入控制台,自动在linux环境下,即python镜像拉取时,也会拉取linux环境,因此镜像较大。

  3. 进入Python容器(方法同上)

四、 镜像制作

  1. 说明
    当对一个Docker容器配置完成后,通过docker commit即可将其打包为镜像文件,方便上传与使用。
  2. 代码语句
    docker commit -a “提交的镜像作者” -m “一些关于image的介绍” containerID new_imageName:Tag

    例子:
    docker commit -p -a “zhoulikun” -m “this is a test” ubuntu01 ubuntu_mine:16.04
    即,将ubuntu01容器打包为ubuntu_mine镜像,
    说明:本人的ubuntu01在基础ubuntu镜像(空白系统,只含基础命令)添加了sudo、python3.5、pip3、django

五、 数据卷挂载

 宿主机文件上传到Docker容器
  1. Docker cp命令方法
    docker cp 本地路径 容器长ID:容器路径

    参考:https://www.cnblogs.com/guohu/p/13125606.html

  2. 数据卷挂载法
    docker run -it -v 主机目录:容器目录

    例子:
    docker run --name ubuntu01 -it -v /C/Users/Administrator/Desktop/docker/shoot:/home ubuntu:16.04 /bin/bash
    新创建一个容器,并将容器home目录和主机shoot目录连接

    docker inspect container_ID

    查看container信息
    关于挂载的相关信息:

    挂载完成

六、Dockerfile文件制作与使用

  1. 创建Dockerfile文件(该文件无后缀)

    参考写入Dockerfile文件:
    FROM nginx
    RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html

  2. Dockerfile运行
    控制台cd到Dockerfile文件下,输入docker build -t nginx:v3 .
    语法:docker build -t 新镜像的名字:TAG dockerFIle文件路径
    参考

实例

创建ubuntu镜像,要求配置python3.5,pip,Django.
  1. Dockerfile内容:

    #基础镜像
    FROM ubuntu:16.04
    #维护者信息
    MAINTAINER zhou 1597027672@email.com
    #镜像的操作指令
    RUN apt-get -y update
    RUN apt-get install sudo && sudo apt-get -y install python3
    RUN sudo apt-get -y install python3-pip && pip3 install django==2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
    #CMD [,]

    各关键字说明:参考

  2. 启动Dockerfile:
    cd到Dockerfile对应文件夹下;
    输入:docker build -t my_image_dockerfile:v1 .

  3. 导出镜像
    docker save -o my_image_dockerfile.tar my_image_dockerfile

七、Dockerfile发布到Dockerhub

  1. 登录docker.hun网站:https://hub.docker.com/

  2. 本机docker登录:docker login -u docker.hub个人ID
    登录成功在WINDOWS显示如下:

  3. 修改镜像名:docker tag 镜像ID dockerhub_ID/nginx:1.0

    例如:docker tag nginx zhou2/nginx:1.0
    zhou2为你注册的用户名,zhou2/nginx为仓库名,1.0为标签名

  4. 上传镜像:docker push dockerhub_ID/nginx:1.0

    如果直接docker push nginx,而没有进行镜像名则修改会报错denied: requested access to the resource is denied.
    为什么要将镜像tag改为:dockerhub_ID/自定义镜像的名:自定义镜像的tag?
    猜测:用于dockerhub指定上传到的用户仓库。

  5. 下拉上传镜像
    登录:docker login -u docker.hub个人ID
    下拉镜像:docker pull dockerhub_ID/nginx:1.0(承接上面)

八、容器间通信

1.计算机网络相关知识

  1. windows中route命令的使用:

      route print#显示IP路由表的全部内容route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1#向带有255.255.0.0子网掩码和10.27.0.1下一跃点地址的10.41.0.0目标中添加一个永久路由#发送给10.41.0.0的数据包,转发给10.27.0.1route delete 10.41.0.0 mask 255.255.0.0#删除掉带有255.255.0.0子网掩码的10.41.0.0目标的路由
    

    windows下route命令(转载)

  2. 查看访问路由:traceroute www.baidu.com

    apt-get install traceroute

2.容器通信

  1. 新建容器:docker run -d --name zhou01 -P ubuntu:16.04

    当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口;
    -p(小写)则可以指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器。

  2. 进入容器:docker exec -it zhou01 /bin/bash
  3. 查看ip地址:ip addr(或docker exec -it ubuntu01 ip addr)

    eth0@if9表示docker容器分配的ip地址
    补充:apt install iputils-ping安装ping库(报错的话,更新一下apt-get:apt-get update
    查看网卡配置:ipconfig(windows) ifconfig(linux,若报错,ubuntu下使用该命令:sudo apt-get install net-tools)

Windows的docker网络学习一直遇到一些问题,为了更好跟视频学习,之后转到Ubuntu系统上了.

Ubuntu18.04下Docker学习总结

参考资料

docker入门
【狂神说Java】Docker最新超详细版教程通俗易懂

Windows下Docker学习总结相关推荐

  1. Windows下Docker启动Elasticsearch报max virtual memory areas vm.max_map_count [65530] is too low, increase

    解决Windows下Docker启动Elasticsearch报max virtual memory areas vm.max_map_count [65530] is too low, increa ...

  2. Windows 下 Docker 与 VMware 共存

    本文介绍一种使得 Windows 下 Docker 与 VMware 软件同时可用的方法. 2020年4月17日更新: VMware现已初步支持Hyper-V,并且WSL2也快正式发布,请考虑使用新的 ...

  3. WINDOWS下Php学习环境安装

    在windows下安装PHP学习环境最为简便的方法是通过XAMPP集成环境来安装PHP与MYSQL环境.在安装完XAMPP后要对服务的端口进行设置. 打开XAMPP主界面后,可以看到有apache.m ...

  4. 手把手教学,带你在Linux、OS X、Windows下Docker的安装

    一.前言 目前,Docker已经支持非常多的Linux平台,包括Ubuntu和RHEL(Red Hat Enterprise Linux,Red Hat企业版Linux).除此之外,Docker还支持 ...

  5. windows下docker desktop的安装和使用

    在windows使用docker根据官方文档安装的是Docker Desktop.Docker desktop是Microsoft Windows的Docker的社区版本. 我们可以从Docker H ...

  6. Windows下Docker配置安装加速器

    Windows10可以安装Docker Desktop for windows,下载地址,下载需要注册登录,但是直接往下拉,找到Install Docker Desktop for Windows d ...

  7. WINDOWS下DOCKER安装后卡在boot2docker.iso无法启动

    在Docker首次启动时需要下载的一个boot2docker.iso,但是因为这个文件的官方位置是在 GitHub,所以在国内不一定能下载下来或者这个速度会非常慢,这时可以先按Ctrl+C取消安装,用 ...

  8. 记录windows下docker常见错误与解决办法

    在启动之前创建的容器时,发现出现下面的问题: OCI runtime create failed: container_linux.go:380: starting container process ...

  9. windows下django学习笔记(二)--HelloWorld

    网上看到一些教程,但都不是很详细,做到一半就夭折了,所以这里做了一个图文版,全程实现. 一.第一步建立项目mysite python django-admin.py startproject mysi ...

最新文章

  1. Python全栈开发,Day1 - Python基础1
  2. 互联网协议 — IPv4 — 分片与重组
  3. 数据库(概念、语法、DBMS、SQL语言:创建数据库、表格,添加、修改、删除数据记录)...
  4. 64位Ubuntu kylin 16.04下使用DNW下载uboot到tiny4412的EMMC
  5. Python3解题:二叉树路径总和问题
  6. wire 和 reg_Wire和Launchkit开源,水流监控系统以及更多新闻
  7. 测试基础-01-软件测试的定义与分类
  8. php __call实现多继承,php如何使用_call实现多继承(代码示例)
  9. 微博html5到桌面,微博正文-微博HTML5版
  10. 南邮物联网学院计算机考研,研友分享南京邮电大学物联网学院两个专业的一点看法...
  11. 产品读书《设计心理学1-4》-设计
  12. 设置clickhouse默认密码
  13. 解决因卸载WPS导致Excel表格打开提示“xls文件格式和扩展名不匹配,文件可能已损坏或不安全”
  14. 茴字有几种写法?SQL排名问题之全局排名的四种解法
  15. 大话西游中的这些经典元素,注意到没?
  16. 服务器ae是什么位置,ae 渲染服务器
  17. 国产手机已经用上了 120W 快充技术,苹果还在用20W的原因
  18. Java递归求全排列详解
  19. 【超全】Go语言超详细学习知识体系
  20. 史上最好用的SEO工具之一ahrefs

热门文章

  1. 同花顺python_我用 Python 预测了股票价格
  2. 如何更快地渲染?深入了解3D渲染性能的指南!(2)
  3. ps如何切图成html页面,PhotoShop切片工具切割图片转成网页格式教程
  4. speedoffice表格分列,拆分文本怎么用
  5. 构建自主创新产业生态实现服务器关键技术超越
  6. php数组种类,PHP到Javascript数组(种类)
  7. EasyUI验证密码不一致
  8. 杨澜对女生说的话:有感
  9. 聊天室技术内幕ABC.
  10. StringBuffer类和StringBuilder类