一些常用的docker相关的命令以及镜像操作
打包镜像
docker save <image name> -o <image name>.tar
加载镜像
docker load -i <image name>.tar
清除不用的镜像和缓存
docker system prune
mysql相关
pull 镜像
docker pull mysql:5.7.32
运行镜像 此次运行仅仅为了将容器中的配置文件拷贝到本地,如果你已经存在可以不执行下面的命令直接跳过去,往下看
docker run -d -p 3306:3306 --privileged=true -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7.32 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
创建文件夹
mkdir logs data
将mysql容器的配置文件拷贝到宿主机上
docker cp mysql:/etc/mysql . 当前目录
删除原来的容器,也可以选择关闭,但是再次创建的mysql容器名不能和本次的一样
docker rm mysql
执行最终的命令进行创建
docker run -p 3306:3306 \
--privileged=true --name mysql \
-v /etc/localtime:/etc/localtime \
-v $PWD/mysql:/etc/mysql \
-v $PWD/logs:/var/log/mysql \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
说明
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 设值数据库默认编码
--privileged=true 设值MySQL 的root用户权限, 否则外部不能使用root用户登陆
mysql的相关配置
进入容器
docker exec -it mysql /bin/bash
登录mysql
mysql -uroot -p
输入你的密码回车
检查是否给root用户授权了远程访问
use mysql;
select User,authentication_string,Host from user;
设置root为所有ip可以访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root'
使其生效
flush privileges;
输入密码后, 执行下面命令创建新用户 (用户名: test , 密码: test)
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY 'test' WITH GRANT OPTION;
创建用户
CREATE USER 'test'@'%' IDENTIFIED BY 'test'; #远程登录
授予其查看视图的权限
GRANT SELECT, SHOW VIEW ON `db`.* TO 'test'@'%'
postgis相关
postgis是postgresql的空间模块
下载 postgis
docker pull postgis/postgis:9.6-3.1
运行 这里的用户名密码和数据库可以自己更改
docker run -d \
-p 5432:5432 \
--name gis \
-e POSTGRES_PASSWORD=postgis \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v $(pwd)/data:/var/lib/postgresql/data \
--privileged=true \
postgis/postgis:9.6-3.1
# 参数说明
--privileged=true 给容器添加特权
创建用户
CREATE USER root WITH PASSWORD 'root';
赋予某个数据库权限
GRANT ALL PRIVILEGES ON DATABASE test_db TO root;
表权限
GRANT ALL PRIVILEGES ON all tables in schema public TO root;
自己创建的用户和数据库进行空间坐标授权(postgresql用户下执行)
CREATE EXTENSION postgis;
elasticsearch相关
# 下载镜像 7.9.1 可以根据自己的情况自行下载
docker pull elasticsearch:7.9.1
# 创建所需文件
mkdir -p /opt/elasticsearch/config
mkdir -p /opt/elasticsearch/data
mkdir -p /opt/elasticsearch/logs
echo "http.host: 0.0.0.0" >> /opt/elasticsearch/config/elasticsearch.yml
# 启动命令
docker run --name elasticsearch7.9.1 -p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /opt/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /opt/elasticsearch/data:/usr/share/elasticsearch/data \
-v /opt/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /opt/elasticsearch/logs:/usr/share/elasticsearch/logs \
-d elasticsearch:7.9.1
# 输入地址验证
curl localhost:9200
kibana相关
# 注意要和 elasticsearch 版本一致
docker pull kibana:7.9.1
# 创建所需文件
mkdir -p /opt/kibana/config/
# 复制横杠里面的全部内容进行运行(elasticsearch.hosts 改成自己的地址)
____________________
cat >> /opt/kibana/config/kibana.yml << EDF
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.88.10:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
EDF
____________________
# 启动命令
docker run -d \
--name=kibana7.9.1 \
-p 5601:5601 \
-v /opt/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
kibana:7.9.1
# 输入地址验证
192.168.88.10:5601
nginx相关
# 下载镜像
docker pull nginx:1.12.0
# 创建目录
mkdir /opt/nginx
# 首次运行,是为了将配置文件拷贝出来
docker run -p 80:80 --name nginx -d nginx:1.12.0
# 进入 opt
cd /opt
# 拷贝文件 --> 注意后面的 .
docker cp nginx:/etc/nginx .
# 关闭nginx容器,并且删除
docker stop nginx
docker rm nginx
# 依次执行命令
cd /opt/
mv nginx/ conf
mkdir nginx
mv conf/ nginx/
# 运行
docker run -p 80:80 --name nginx \
-v /etc/localtime:/etc/localtime \
-v /opt/nginx/conf:/etc/nginx \
-v /opt/nginx/logs:/var/log/nginx \
-v /opt/nginx/html:/usr/share/nginx/html \
-d nginx:1.12.0
minio相关
# 下载镜像
docker pull minio/minio
# 启动安装
docker run -d --name minio \
-p 9000:9000 \
-p 9001:9001 \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=minioadmin" \
-v $PWD/data:/data \
-v $PWD/config:/root/.minio \
minio/minio server /data \
--console-address ":9001"
rabbitMQ 相关
# 下载镜像
docker pull rabbitmq:management
# 启动安装
docker run -d --hostname rabbit-node \
--name rabbit \
-e RABBITMQ_DEFAULT_USER=username \
-e RABBITMQ_DEFAULT_PASS=password \
-p 5672:5672 -p 15672:15672 \
-v $PWD/data:/var/lib/rabbitmq \
rabbitmq:management