Windows下Docker学习总结

写在前面

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

背景

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
  6. 删除容器 docker rm my_container
  7. 容器命名启动:docker run –dit --name container_name 容器镜像:标签 执行命名

菜鸟教学

对镜像

  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.1
    	route 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最新超详细版教程通俗易懂

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腹有诗书,何患无辞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值