链接

官网

镜像仓库

安装

  • mac/windows

    直接下载桌面客户端,自动会安装好docker(推荐使用)

    mac可以直接使用brew install docker进行安装

  • linux

    apt install docker.io

更换镜像源

  • mac/windows客户端

    直接在 Docker Engine上编辑即可:

  • linux

    直接编辑 /etc/docker/daemon.json即可(没有则自建)


编辑内容

{
  "debug": true,
  "experimental": false,
  "registry-mirrors": [
    "https://cr.console.aliyun.com",
    "http://hub-mirror.c.163.com",
    "https://registry.docker-cn.com"
  ]
}

基本命令

拉取镜像:docker pull mysql or docker pull mysql:5.7

查看镜像:docekr images

删除镜像:docekr rmi 镜像id

运行镜像:docker run -d -p 3306:3306 mysql:5.7

-d 后台运行 -p 主机端口/容器内部端口 mysql:5.7 镜像名:版本

查看已运行容器:docker ps or docker ps -a

进入已运行容器:docker exec -it 容器id sh

停止容器:docker stop 容器id

启动容器:docker start 容器id

重启容器:docker restart 容器id

删除容器:docker rm 容器id

查看容器日志:docker logs 容器id

更多命令查询:docker --help

镜像

Redis

镜像地址及参考文档

下载最新版redis镜像:docker pull redis

指定版本:docker pull redis:6.0.6

简单的运行一个redis实例:docker run --name some-redis -p 6379:6379 -d redis

连接redis-cli:docker run -it --network some-network --rm redis redis-cli -h some-redis

运行一个持久化的redis实例:参考官方文档

运行指定的redis.conf的实例:参考官方文档

Mysql

镜像地址及参考文档

下载最新版mysql镜像:docker pull mysql

目前为8.x

启动一个简单的mysql实例:

docker run --name mysql8.x -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --lower_case_table_names=0

指定版本:docker pull mysql:5.7

启动一个简单的mysql实例:

docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --lower_case_table_names=0

指定名称,指定密码,指定端口,后台启动,指定mysql版本,指定字符编码,指定忽略表明大小写

进入msyql客户端:

docker exec -it mysql镜像id /bin/bash
mysql -u root -p 
# 密码是123456

# 查看用户名,host和密码
select user,host,authentication_string from mysql.user;
# 设置数据表访问权限和远程访问权限
grant all PRIVILEGES on *.* to 'root'@'%' WITH GRANT OPTION;
flush privileges;
# 修改密码(且修改了密码加密方式)
SET PASSWORD FOR 'root'@'localhost' = '123456';
flush privileges;
# 创建用户(开放数据表访问权限和远程访问权限)
create user 'root'@'%' IDENTIFIED by '123456';
grant all on *.* to 'root'@'%';
flush privileges;

具体操作可以参考该博客


宿主机本地访问docker中的mysql问题:

  • 如果需要设置只允许宿主机访问本地docker中mysql,但是host使用localhost或者127.0.0.1都不能访问
  • 解决方案:获取到宿主机对应docker中mysql的ip即可
    • 先进入docker中的mysql容器,执行cat /etc/hosts来查看当前mysql容器的ip(在最后一行)
    • 因为宿主机和当前容器在同一个网段,所以把容器的ip最后4位改为1即可
    • 例如:容器ip:172.18.0.2,则宿主机ip:172.18.0.1
    • 然后将宿主机ip更新到对应的用户的host上即可(需要flush操作,具体参考上文)

RabbitMQ

镜像地址及参考文档

下载最新版rabbitmq镜像:docker pull rabbitmq

指定版本:docker pull rabbitmq:3.8.7-management(带有web界面)

启动一个简单的rabbitmq实例:

docker run -d -p 5672:5672 -p 15672:15672 --name some-rabbitmq rabbitmq:3-management
  • web界面:http://ip:15672
  • 用户名/密码:guest/guest

ElasticSearch

镜像地址及参考文档

下载最新版ElasticSearch镜像:docker pull elasticsearch

指定版本:docker pull elasticsearch:7.8.1

启动一个简单的elasticsearch实例:

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.8.1

后台启动,指定名称,指定端口,指定单机启动

设置占用的内容大小:

-m 700M --memory-swap 3G

开启远程访问权限:

-e "http.cors.enabled=true" -e "http.cors.allow-origin=*" -e "http.cors.allow-headers=Authorization"

修改elasticsearch的访问权限:

# 使用命令进入elasticsearch实例
docker exec -it 镜像id /bin/bash
# 修改配置文件config/elasticsearch.yml
vi config/elasticsearch.yml
  • 添加一下内容

    network.host: 0.0.0.0
    
0条评论
头像
ICP证 : 浙ICP备18021271号