Docker 镜像拉取 docker 之 pull image 篇

零、前置条件

拉取镜像前,记得先开启 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

 

 

作者:余衫马原文地址:https://blog.csdn.net/weixin_47560078/article/details/126189386

%s 个评论

要回复文章请先登录注册