目录

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 DNS 114.114.114.114 114.114.115.115
阿里 AliDNS 223.5.5.5 223.6.6.6
百度 BaiduDNS 180.76.76.76
DNSPod DNS+ 119.29.29.29 182.254.116.116
CNNIC SDNS 1.2.4.8 210.2.4.8
oneDNS 112.124.47.27 114.215.126.16
DNS 派 电信/移动/铁通 101.226.4.6 218.30.118.6
DNS 派 联通 123.125.81.6 140.207.198.6
Google DNS 8.8.8.8 8.8.4.4
OpenDNS 208.67.222.222 208.67.220.220
V2EX DNS 199.91.73.222 178.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博客

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐