Docker入门

本地registry配置(Mac)

当使用本地电脑使用docker时,通常会使用到localhost:5000这个端口,我们会在本地创建一个registry,并把生成的镜像pull到这个registry

vi /etc/docker/daemon.json
 {
 	 "insecure-registries": ["127.0.0.1:5000"]
 }

重启docker后可以查看

docker info

在下拉的insecure-registries中会看到设置好的registry

当然也可以直接在docker dashboard中设置
在这里插入图片描述

在创建本地registry时,执行

docker run -d -v /registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name registry registry:latest

指定端口为5000,拉取registry:latest,如果本地没有的话。
之后就可以愉快的在本地进行push啦

基本命令

docker pull ubuntu:18.04 // 拉取镜像

-----------------查看--------------------
// 列出已经下载下来的镜像
docker image ls 
docker images
// 查看镜像、容器、数据卷所占用的空间
docker system df 
// 显示虚悬镜像(dangling image) 
docker image ls -f dangling=true 
// 查看容器ip
docker inspect <containtor_id>
// 查看网络设置
docker network ls
// 执行进入到容器内部
docker exec -it CONTAINER ID /bin/bash

-----------------删除--------------------
// 删除tag为xxx的images xxx = tag ; 
docker rmi `docker images|grep none|awk '{print $3 }'|xargs`
docker rmi `docker images|grep latest|awk '{print $3 }'|xargs`
// 删除responsitory为none的
docker rmi -f $(docker images -f "dangling=true" -q)
// 删除虚悬镜像
docker image prune 
// 删除images -f表示强制删除
docker rmi -f xxxx

-----------------移除--------------------
// 移除一个正在运行的container
docker stop ContainerId
docker rm ContainerId
docker rm -f ContainerId

-----------------运行--------------------
docker run -itd
-i 以交互模式运行容器,通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d 后台运行容器,并返回容器ID;

问题

1.windows启动出现 WSL 2 installation is incomplete
解决:Windows 10 启动 Docker Desktop 时出现 WSL 2 installation is incomplete
2.解决hyper-v导致docker无法启动问题
解决:hyper-v导致docker无法启动问题
3.docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
解决:对应端口被占用,查看具体的端口占用情况
4. Mac下无法使用docker host模式解决方案
Docker官方对MacOS的限制描述:
Mac下无法使用docker host模式
MAC系统下DOCKER容器无法使用–NET HOST共享宿主机端口的解决方案

5.windows docker start failed
引发上一堆栈中的位置异常

解决办法:
● 下载NoLsp.exe;
链接:https://pan.baidu.com/s/1cHmxRcJizXZhkgxDnjqIng
提取码:u20i
● 将NoLsp.exe复制到C:\Windows\System32\文件夹下;
● 以管理员身份打开CMD,切记管理员身份;
● 运行NoLsp.exe C:\Windows\System32\wsl.exe;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
什么是Docker Docker 最初是dotCloud 公司创始人Solomon Hykes 在法国期间发起的一个公司内部项目, 它是基于dotCloud 公司多年云服务技术的一次革新,并于2013 年3 月以Apache 2.0 授权 协议开源,主要项目代码在GitHub 上进行维护。Docker 项目后来还加入了Linux 基金会, 并成立推动开放容器联盟(OCI)。 Docker 自开源后受到广泛的关注和讨论,至今其GitHub 项目已经超过4 万6 千个星标和一 万多个fork。甚至由于Docker 项目的火爆,在2013 年底,dotCloud 公司决定改名为 DockerDocker 最初是在Ubuntu 12.04 上开发实现的;Red Hat 则从RHEL 6.5 开始对 Docker 进行支持;Google 也在其PaaS 产品中广泛应用DockerDocker 使用Google 公司推出的Go 语言进行开发实现,基于Linux 内核的 cgroup,namespace,以及AUFS 类的Union FS 等技术,对进程进行封装隔离,属于操作 系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容 器。最初实现是基于LXC,从0.7 版本以后开始去除LXC,转而使用自行开发的 libcontainer,从1.11 开始,则进一步演进为使用runC 和containerd。 Docker容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极 大的简化了容器的创建和维护。使得Docker 技术比虚拟机技术更为轻便、快捷。 下面的图片比较了Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件 后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程 直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比 传统虚拟机更为轻便。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值