Docker 镜像拉取

零、前置条件

拉取镜像前,记得先开启 docker:

systemctl start docker

systemctl status docker

配置国内源镜像:

vim /etc/docker/daemon.json 

"registry-mirrors": [
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]

一、MySQL

1、搜索镜像

docker search mysql

2、拉取镜像

docker pull mysql:tag
# tag 为版本号,不填默认为 latest

选择第一个镜像,由官方发布的 mysql:latest ,

指定版本号为 5.7 ,

3、查看镜像

docker images

4、运行容器 

docker run -it -d --name name -p port:port -v path:path -v file:file -e env=value image:tag /bin/bash 
参数解析
-it与容器进行交互式启动
-d守护式运行
--name给容器的别名
-p端口映射,[宿主端口:容器端口]
-v容器挂载点,[挂载的宿主目录或文件:容器目录或文件]
-e给容器的环境变量,[变量名=变量值]
[image:tag]要运行的镜像版本
[/bin/bash]交互路径
docker run -it -d --name mysql8 -p 3307:3306 -v D:/DockerData/mysql8/data:/var/lib/mysql -v D:/DockerData/mysql8/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root mysql:latest /bin/bash 

# 运行成功后会返回容器 id
5a6ea00828f0fc5810c455fd54a7bc37009a4c76b9bd8629abd358ea7aee7e9a

5、查看运行中的容器

docker ps

# 容器运行信息
CONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS              PORTS                               NAMES
5a6ea00828f0   mysql:latest   "docker-entrypoint.s…"   About a minute ago   Up About a minute   33060/tcp, 0.0.0.0:3307->3306/tcp   mysql8

6、登录容器 

docker exec -it 容器名称或ID /bin/bash

# 登录 mysql8 容器
docker exec -it mysql8 /bin/bash

遇到问题:

bash-4.4# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

原因:这是由于当使用host参数为“localhost”连接Mysql服务时,会优先使用“sock文件”进行连接,而不是使用“IP:端口”进行连接,而mysql尝试使用“sock文件”进行连接时,却无法获取“sock文件”的位置。

解决:

1、将连接参数“host”的值由“localhost”改成“127.0.0.1”

mysql -uroot -h 127.0.0.1 -p

2、在“/etc/mysql.cnf”中指定“sock文件”位置

# 查看 socket 文件位置
# cat /etc/my.cnf

[mysqld]
socket=/var/run/mysqld/mysqld.sock


# 将容器里的配置文件复制到宿主主机
docker cp mysql8:/etc/my.cnf D:/DockerData/mysql8/

# 修改配置文件
[mysql]
socket=/var/run/mysqld/mysqld.sock
 
[client]
socket=/var/run/mysqld/mysqld.sock
 
[mysqldump]
socket=/var/run/mysqld/mysqld.sock
 
[mysqladmin]
socket=/var/run/mysqld/mysqld.sock

# 将修改后的配置文件复制到容器
docker cp D:/DockerData/mysql8/my.cnf mysql8:/etc/my.cnf

# 重启容器
docker restart mysql8

3、若上面两个方法无效,则重构容器,去掉 -d -it 指令

docker run --name mysql8 -p 3307:3306 -v D:/DockerData/mysql8/my.cnf:/etc/my.cnf:rw -e MYSQL_ROOT_PASSWORD=123456789 mysql:latest

二、Redis

1、搜索镜像

docker search Redis

2、拉取镜像 

docker pull redis

3、启动 Redis 并映射本地 6380 端口 

docker run -d --name redis -p 6380:6379 redis

 使用 Redis Desktop Manager 测试连接,可以看到连接成功。

如果需要修改 Redis 配置,可以通过映射 redis.config 文件实现。 

三、MongoDB

1、搜索镜像

docker search mongo

2、拉取镜像 

docker pull mongo

3、启动 mongo 并映射本地端口 27017 

docker run -dit -p 27017:27017 --name mongo -v D:/MongoDB/data:/data/db mongo

4、可视化工具

https://github.com/Studio3T/robomongo

5、创建用户

在 System-admin 下右键,选择 Open Shell,输入:

db.createUser({user:'admin',pwd:'123456',roles:[{role:'root',db:'admin'}]});

四、RabbitMQ

1、搜索镜像

docker search rabbitmq

2、拉取镜像

docker pull rabbitmq

3、启动容器

# 指定了容器的名称 hostname 并映射了两个端口,一个是 rabbitmq 服务端口,一个是插件端口
docker run -d --hostname testrabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq

4、安装插件

# 查看当前运行的容器
docker ps
# 进入容器
docker exec -it rabbit /bin/bash
# 容器内安装插件
rabbitmq-plugins enable rabbitmq_management

 5、访问 rabbitmq

访问本机IP:15672,账号密码默认为 guest

 

 

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker镜像拉取速度慢可能由以下几个原因导致: 1. **网络连接问题**:如果你的网络带宽有限,或者网络连接不稳定,这将显著延长镜像下载的时间。 2. **镜像仓库位置**:如果镜像存储在国外,而你的服务器在国内,国际数据传输会受到延迟的影响。 3. **缓存机制**:虽然Docker会尝试利用本地缓存加速拉取,但如果镜像没有在本地缓存,或缓存过期,首次拉取将较慢。 4. **镜像大小**:大型镜像(例如包含所有依赖的运行环境)比小型镜像拉取时间更长。 5. **镜像版本更新**:如果镜像频繁更新,每次拉取都可能是最新版本,而非使用已存在的旧版本,也会增加时间。 6. **镜像构建问题**:如果镜像是自定义构建的,构建过程中可能会有错误或者耗时的操作,影响最终的拉取速度。 7. **镜像仓库拥堵**:高峰期,多个用户同时拉取可能导致服务器响应变慢。 针对这些问题,你可以尝试以下解决方法: - 检查网络连接:确保网络稳定且带宽充足。 - 使用国内镜像源:如阿里云、腾讯云等提供了国内加速的Docker Hub镜像仓库。 - 清理缓存:使用`docker image prune`命令清理无用的镜像容器,释放空间并刷新缓存。 - 分批拉取:如果镜像分层,可以尝试分阶段拉取,或者只拉取特定层。 - 设置镜像别名:为常用镜像设置别名,减少冗余操作。 - 优化镜像构建:如果是自定义镜像,检查构建脚本是否高效,避免不必要的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

余衫马

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

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

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

打赏作者

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

抵扣说明:

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

余额充值