docker使用

目录

1. 安装

2. 查询镜像,拉取镜像

1. 查询镜像

        1. 通过图形化界面docker desktop

        2. 通过命令行查找

2. 下载镜像

3. 使用docker运行镜像

1. 图形化界面

2. 命令行

4. 注意点

1. 端口映射

2. 挂载文件

3. 容器间桥接网络


1. 安装

        windows安装docker比较简单,但是需要注意如果之前安装了虚拟机,安装后可能会有冲突无法使用。这里我解决得很迷幻,而且每个人的情况不一样,就各自安好吧~

        另外,还需要注意检查下面的设置。

        搜索应用“启用或关闭windows功能”,检查Hyper-V,适用于Linux的windows子系统,虚拟机平台是否启用。

        找到本地组策略编辑器,检查是否打开基于虚拟化的安全。检查步骤如下图。

2. 查询镜像,拉取镜像

        查询镜像流程:

        1. 查看是否有官方的镜像,有的话优先官方镜像

        2. 没有官方镜像优先推荐值高的镜像

        3. 确认镜像是否符合需求

1. 查询镜像

        1. 通过图形化界面docker desktop

        但我安装的图形化界面没法查找到镜像,是因为docker desktop没有链接到网络。

        解决办法:配置Proxies

        tips:三个都要配置,之前只配置了一个,坑了好久。

        配置好后可以查找镜像了。

        2. 通过命令行查找

docker search 要查找的镜像

        这里以查询mysql为例。

2. 下载镜像

        1. 在图形化界面拉取镜像

        以上图片来自网络。

        2. 使用命令行

docker pull 镜像名

        3. 下载速度慢解决方案

        方法一:配置镜像源

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://bytkgxyr.mirror.aliyuncs.com",
    "https://hub-mirror.c.163.com/",
    "https://reg-mirror.qiniu.com/",
    "https://docker.mirrors.ustc.edu.cn/",
    "https://registry.docker-cn.com",
    "https://docker.888666222.xyz/"
  ]
}

        方法二:修改DNS

        公共 DNS 服务器 IP 地址(表格来源

114 DNS114.114.114.114114.114.115.115
阿里 AliDNS223.5.5.5223.6.6.6
百度 BaiduDNS180.76.76.76
DNSPod DNS+119.29.29.29182.254.116.116
CNNIC SDNS1.2.4.8210.2.4.8
oneDNS112.124.47.27114.215.126.16
DNS 派 电信/移动/铁通101.226.4.6218.30.118.6
DNS 派 联通123.125.81.6140.207.198.6
Google DNS8.8.8.88.8.4.4
OpenDNS208.67.222.222208.67.220.220
V2EX DNS199.91.73.222178.79.131.110

        镜像下载速度慢解决方案参考链接:

Docker拉取镜像过慢或卡死的坑!!!(亲测有效)_docker pull registry拉取不动-CSDN博客

3. 使用docker运行镜像

1. 图形化界面

        运行成功的界面如下。

2. 命令行

# 查看已下载的容器
docker images

# 运行交互式容器
docker run -it <image_name>
# 运行后台容器
docker run -d <image_name>
# 指定端口映射
docker run -p <host_port>:<container_port> <image_name>
# 设置环境变量
docker run -e <env_var>=<value> <image_name>

# 查看正在运行的容器
docker ps

# 停止容器
docker stop <container_id>

        示例。

        成功运行容器。

        成功停止运行容器。

4. 注意点

1. 端口映射

        判断容器是否做端口映射:如果容器内运行的服务(如 Web 服务器、数据库等)需要被外部访问,那么就需要进行端口映射。例如,我希望通过主机访问docker中的某个容器时,需要端口映射。

        对于容器对外暴露的端口可以查看dockerfile得到。(dockerfile文件实际上是一个指令文件,里面包含了容器构建起来的所有指令,通过这些指令docker可以自动化地创建和配置镜像。)

        在docker desktop中也可以看到这些指令。

        我们可以在运行时通过以下指令配置端口映射。

docker run -p <host_port>:<container_port> <image_name>

2. 挂载文件

        挂载对外服务产生的文件,挂载的文件一般有配置文件,用户上传文件等。通过挂载可以

防止因为容器崩溃导致数据丢失,同时还可以挂载到不同的容器中共享数据。

        可以通过图形化界面,在启动容器时配置挂载信息。

       

        或者通过-v--mount选项配置挂载。

docker run -d -v 本机目录:容器挂载点 镜像名
docker run -d --mount type=bind,source=本机目录,target=容器挂载点 镜像名

        查看挂载信息。

docker inspect 镜像名

        示例。

3. 容器间桥接网络

        容器间互相访问,建立桥接网络。在容器间搭建网桥类似于组建了一个小型的局域网,进入这个桥接网络的容器可以通过IP地址或容器名称相互通信,就像在同一个局域网中的设备一样。如果,容器有对外暴露端口,那么容器间就可以通过IP和端口号获取容器中的数据和服务。

        

        搭建网桥步骤:

        1. 创建桥接网络

docker network create my_bridge_network

        2. 将运行的容器添加到网络中

docker network connect my_bridge_network my_existing_container

        3. 查看网络信息,获取容器IP

docker network inspect <network_name>

        4. 测试容器互联

        需要在容器中安装ping,但是由于每个容器的环境不同,所以需要根据容器查找对应的安装方法。

        这里测试成功了。

 

参考文章:

1.
WSL2 请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化_当前计算机配置不支持 wsl2。 请启用“虚拟机平台”可选组件,并确保在 bios 中启-CSDN博客

2. Docker拉取镜像过慢或卡死的坑!!!(亲测有效)_docker pull registry拉取不动-CSDN博客

3. win10 手动设置 DNS 地址_自动分配口ip手动指定dns-CSDN博客

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

睆小白

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

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

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

打赏作者

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

抵扣说明:

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

余额充值