Docker攻略

docker基础操作命令

1)、在linux虚拟机上安装docker

步骤:

 # 国内源
 daocloud.io/library/
1、检查内核版本,必须是3.10及以上
uname -r
2、安装docker
yum install docker
3、输入y确认安装
4、启动docker
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker -v
Docker version 1.12.6, build 3e8e77d/1.12.6
5、开机启动docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
6、停止docker
systemctl stop docker

2)、镜像操作

操作 命令 说明
检索 docker search 关键字 eg:docker search redis 我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。
拉取 docker pull 镜像名:tag :tag是可选的,tag表示标签,多为软件的版本,默认是latest
列表 docker images 查看所有本地镜像
删除 docker rmi image-id 删除指定的本地镜像

https://hub.docker.com/ :官方镜像仓库

3)、容器操作

软件镜像(QQ安装程序)----运行镜像----产生一个容器(正在运行的软件,运行的QQ);

步骤:

1、搜索镜像
[root@localhost ~]# docker search tomcat
2、拉取镜像
[root@localhost ~]# docker pull tomcat
3、根据镜像启动容器
docker run --name mytomcat -d tomcat:latest
4、docker ps  
查看运行中的容器
5、 停止运行中的容器
docker stop  容器的id
6、查看所有的容器
docker ps -a
7、启动容器
docker restart 容器id ##重启
docker start 容器id
8、删除一个容器
 docker rm 容器id
9、启动一个做了端口映射的tomcat
[root@localhost ~]# docker run -d -p 8888:8080 tomcat
-d:后台运行
-p: 将主机的端口映射到容器的一个端口    主机端口:容器内部的端口

10、为了演示简单关闭了linux的防火墙
service firewalld status ;查看防火墙状态
service firewalld stop:关闭防火墙
11、查看容器的日志
docker logs container-name/container-id

更多命令参看
https://docs.docker.com/engine/reference/commandline/docker/
可以参考每一个镜像的文档

一、dokcer安装配置mysql

docker pull mysql:5.7
docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=000000 -d mysql:5.7


docker run -p 3310:3306 --name task_mysql \
 -v task_mysql:/etc/mysql \
 -v task_mysql_file:/var/lib/mysql-files/ \
 -e MYSQL_ROOT_PASSWORD=000000 -d mysql:8

二、 docker安装配置redis

docker pull redis
docker run -p 6379:6379 --name redis  -d redis --requirepass "password"


docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf  -v /data/redis/data:/data -d xxx redis-server /etc/redis/redis.conf --appendonly yes

#下载配置文件
wget http://download.redis.io/redis-stable/redis.conf
https://download.redis.io/releases/

docker run -p 23379:6379 --name blog_redis \
-v my_redis_config:/etc/redis/redis.conf \
-v my_redis_data:/data \
-d 705235b45ae0 redis-server /etc/redis/redis.conf \
--appendonly yes

docker run -p 6379:6379 -d 

三、docker安装rabbitmq

docker pull rabbitmq

docker run -d -p 5672:5672 -p 15672:15672 38e57f281891

如果要修改管理员用户

1、进入docker 的 RabbitMQ 容器中
docker exec -it rabbitmq01 bash

2、查看用户
rabbitmqctl list_users

3、修改密码
rabbitmqctl change_password userName newPassword

4、如果不想要guest的账号也可以新增账号
 rabbitmqctl add_user userName newPassword

5、看guest不爽,你还可以delete它
rabbitmqctl delete_user guest

6、最后别忘了给自己添加的账号增加超级管理员权限
rabbitmqctl set_user_tags userName administrator

四、docker安装ElasticSearch

#拉取ES镜像
docker pull  daocloud.io/library/elasticsearch:7.6.2
#运行ES
docker run -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES03 41072cdeebc5
#配置ElasticSearch
docker exec -it fa2709031c12(容器id) /bin/bash
cd config
vim elasticsearch.yml
#添加以下(跨域跨端口)
http.cors.enabled: true
http.cors.allow-origin: "*"

es可以参考这个

https://blog.csdn.net/fw19940314/article/details/86482971

#docker安装kibana
docker pull docker.elastic.co/kibana/kibana:7.6.2
docker run --name kibana6.6.0 -e ELASTICSEARCH_URL=http://192.168.172.20:9200 -p 5601:5601 -d eadc7b3d59dd
#进入容器之中
docker exec -it a8bfcdadf624 /bin/bash
#在config文件夹下面修改kibana.yml,将url修改成
elasticsearch.hosts: [ "http://39.98.138.203:9200" ]
#汉化添加这句添加
i18n.locale: "zh-CN"
#重启
docker restart a8bfcdadf624

安装ik分词器

#进入ElasticSearch容器
docker exec -it fa2709031c12 /bin/bash
#进入plugins文件夹
cd plugins
#安装wget
yum wget
#下载安装ik(对应kibana和ElasticSearch版本)
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
#建立ik文件夹
mkdir ik
#移动到ik下并解压
unzip elasticsearch-analysis-ik-7.6.2.zip -d ik
rm -f elasticsearch-analysis-ik-7.6.2.zip 
#重启ElasticSearch
docker restart  (id)

安装ElasticSearch-head

#拉取
docker pull mobz/elasticsearch-head:5
#启动并端口映射
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
访问9100端口绑定ElasticSearch就可以了,前提是做了跨域处理。

五、docker挂载tomcat

docker run -d -p 8088:8080 --name tomcat -v /usr/local/dev/docker-tomcat:/usr/local/tomcat/webapps --restart=always tomcat

docker volume create my_tomcat_webapps

docker volume create my_tomcat_config

docker-compose

version: '3.8'
# docker compose 版本和 docker 对应
services:
    tomcat:
        restart: always
         image: tomcat
           volumes:
         - my_tomcat_config:/usr/local/tomcat/conf
         - my_tomcat_webapps:/usr/local/tomcat/webapps
        ports:
          - 10010:8080
         environment:
           TZ: Asia/Shanghai

六、docker install minio

docker run -d -p 9002:9000 -p 9001:9001 \
 --name my_minio -v minio_data:/data \
 -v minio_config:/root/.minio \
 -e "MINIO_ROOT_USER=root" \
 -e "MINIO_ROOT_PASSWORD=11m2dd11" \
 minio/minio server /data --console-address ":9001"

七、docker install httpd

docker run -p 1818:80 --name task_httpd \
 -v /root/task/api/www/:/usr/local/apache2/htdocs/ \
 -v /root/task/api/conf/httpd.conf:/usr/local/apache2/conf/httpd.conf \
 -v /root/task/api/logs/:/usr/local/apache2/logs/ -d httpd:latest


 docker run -dit --name task_httpd -p 8080:80 --network host -v /root/task/api/www/:/usr/local/apache2/htdocs/ httpd:latest

Q.E.D.