Windows下Docker学习总结
写在前面
以下为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常用命令
对容器
- 查看所有容器:docker ps -a
- 查看在运行的容器:docker ps
- 启动容器:docker start container_ID
- 进入容器: docker exec -it container_ID /bin/bash
docker attach container_ID
- 停止容器:docker stop container_ID
对镜像
- 查看镜像:
docker images
- 删除镜像:
docker rmi <image_id>
- 删除镜像(images):
docker rmi <image_id>
(通过镜像(images)的id来指定删除谁) - 想要删除镜像(images)id为的image的话可以用:
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
(该名令为linux命令,Windows中直接面板中remove即可) - 要删除全部镜像(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镜像的相关
- 拉取
docker pull ubuntu:16.04 - 创建交互式的容器
docker run -i -t ubuntu:16.04 /bin/bash - 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 - 进入container:
docker start 容器名#启动容器
docker exec -it 容器ID bash#进入容器
Nginx镜像相关
- 拉取
docker pull nginx
- 指定端口启动Nginx
docker run -d --name nginx01 -p 3344:80 nginx
-d 后台运行
-p 宿主机端口:容器内部端口,将容器80映射到主机3344端口,即主机通过3344端口即可访问容器内80端口
–name 容器命名为nginx01 - 测试:
curl localhost:3344
- 进入nginx:
docker exec -it nginx01 /bin/bash
Python镜像相关
- 拉取
docker pull python:3.6 - 创建交互式的容器
docker run -i -t python:3.6 /bin/bash猜测:进入控制台,自动在linux环境下,即python镜像拉取时,也会拉取linux环境,因此镜像较大。
- 进入Python容器(方法同上)
四、 镜像制作
- 说明
当对一个Docker容器配置完成后,通过docker commit即可将其打包为镜像文件,方便上传与使用。 - 代码语句
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容器
Docker cp命令方法
docker cp 本地路径 容器长ID:容器路径
参考:https://www.cnblogs.com/guohu/p/13125606.html
数据卷挂载法
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文件制作与使用
- 创建Dockerfile文件(该文件无后缀)
参考写入Dockerfile文件:
FROM nginx
RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html
- Dockerfile运行
控制台cd到Dockerfile文件下,输入docker build -t nginx:v3 .
语法:docker build -t 新镜像的名字:TAG dockerFIle文件路径
参考
实例
创建ubuntu镜像,要求配置python3.5,pip,Django.
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 [,]各关键字说明:参考
启动Dockerfile:
cd到Dockerfile对应文件夹下;
输入:docker build -t my_image_dockerfile:v1 .
导出镜像
docker save -o my_image_dockerfile.tar my_image_dockerfile
七、Dockerfile发布到Dockerhub
登录docker.hun网站:https://hub.docker.com/
本机docker登录:
docker login -u docker.hub个人ID
登录成功在WINDOWS显示如下:修改镜像名:
docker tag 镜像ID dockerhub_ID/nginx:1.0
例如:docker tag nginx zhou2/nginx:1.0
zhou2为你注册的用户名,zhou2/nginx为仓库名,1.0为标签名上传镜像:
docker push dockerhub_ID/nginx:1.0
如果直接docker push nginx,而没有进行镜像名则修改会报错
denied: requested access to the resource is denied.
为什么要将镜像tag改为:dockerhub_ID/自定义镜像的名:自定义镜像的tag?
猜测:用于dockerhub指定上传到的用户仓库。下拉上传镜像
登录:docker login -u docker.hub个人ID
下拉镜像:docker pull dockerhub_ID/nginx:1.0
(承接上面)
八、容器间通信
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命令(转载)
- 查看访问路由:
traceroute www.baidu.com
apt-get install traceroute
2.容器通信
- 新建容器:
docker run -d --name zhou01 -P ubuntu:16.04
当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口;
-p(小写)则可以指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器。 - 进入容器:
docker exec -it zhou01 /bin/bash
- 查看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学习总结相关推荐
- 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 ...
- Windows 下 Docker 与 VMware 共存
本文介绍一种使得 Windows 下 Docker 与 VMware 软件同时可用的方法. 2020年4月17日更新: VMware现已初步支持Hyper-V,并且WSL2也快正式发布,请考虑使用新的 ...
- WINDOWS下Php学习环境安装
在windows下安装PHP学习环境最为简便的方法是通过XAMPP集成环境来安装PHP与MYSQL环境.在安装完XAMPP后要对服务的端口进行设置. 打开XAMPP主界面后,可以看到有apache.m ...
- 手把手教学,带你在Linux、OS X、Windows下Docker的安装
一.前言 目前,Docker已经支持非常多的Linux平台,包括Ubuntu和RHEL(Red Hat Enterprise Linux,Red Hat企业版Linux).除此之外,Docker还支持 ...
- windows下docker desktop的安装和使用
在windows使用docker根据官方文档安装的是Docker Desktop.Docker desktop是Microsoft Windows的Docker的社区版本. 我们可以从Docker H ...
- Windows下Docker配置安装加速器
Windows10可以安装Docker Desktop for windows,下载地址,下载需要注册登录,但是直接往下拉,找到Install Docker Desktop for Windows d ...
- WINDOWS下DOCKER安装后卡在boot2docker.iso无法启动
在Docker首次启动时需要下载的一个boot2docker.iso,但是因为这个文件的官方位置是在 GitHub,所以在国内不一定能下载下来或者这个速度会非常慢,这时可以先按Ctrl+C取消安装,用 ...
- 记录windows下docker常见错误与解决办法
在启动之前创建的容器时,发现出现下面的问题: OCI runtime create failed: container_linux.go:380: starting container process ...
- windows下django学习笔记(二)--HelloWorld
网上看到一些教程,但都不是很详细,做到一半就夭折了,所以这里做了一个图文版,全程实现. 一.第一步建立项目mysite python django-admin.py startproject mysi ...
最新文章
- Python全栈开发,Day1 - Python基础1
- 互联网协议 — IPv4 — 分片与重组
- 数据库(概念、语法、DBMS、SQL语言:创建数据库、表格,添加、修改、删除数据记录)...
- 64位Ubuntu kylin 16.04下使用DNW下载uboot到tiny4412的EMMC
- Python3解题:二叉树路径总和问题
- wire 和 reg_Wire和Launchkit开源,水流监控系统以及更多新闻
- 测试基础-01-软件测试的定义与分类
- php __call实现多继承,php如何使用_call实现多继承(代码示例)
- 微博html5到桌面,微博正文-微博HTML5版
- 南邮物联网学院计算机考研,研友分享南京邮电大学物联网学院两个专业的一点看法...
- 产品读书《设计心理学1-4》-设计
- 设置clickhouse默认密码
- 解决因卸载WPS导致Excel表格打开提示“xls文件格式和扩展名不匹配,文件可能已损坏或不安全”
- 茴字有几种写法?SQL排名问题之全局排名的四种解法
- 大话西游中的这些经典元素,注意到没?
- 服务器ae是什么位置,ae 渲染服务器
- 国产手机已经用上了 120W 快充技术,苹果还在用20W的原因
- Java递归求全排列详解
- 【超全】Go语言超详细学习知识体系
- 史上最好用的SEO工具之一ahrefs