安装docker(CentOS)
1 卸载系统之前的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2 设置存储库
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
3 安装DOCKER引擎
sudo yum install docker-ce docker-ce-cli containerd.io
4 启动Docker.
sudo systemctl start docker
5 配置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://chqac97z.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安装mysql
1 拉去mysql镜像
sudo docker pull mysql:8.0
2 启动mysql容器
# --name指定容器名字 -v目录挂载 -p指定端口映射 -e设置mysql参数 -d后台运行
sudo docker run --name mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql:/etc/mysql/conf.d -v /usr/local/mysql/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:8.0
3 使用su - root(切换为root,这样就不用每次都sudo来赐予了)
su - root
4 进入mysql容器
docker exec -it 容器名称|容器id bin/bash
安装redis
1 在docker hub搜索redis镜像
docker search redis
2 拉取redis镜像到本地
docker pull redis:6.0.10
3 修改需要自定义的配置(docker-redis默认没有配置文件,
自己在宿主机建立后挂载映射)
创建并修改/usr/local/redis/redis.conf
bind 0.0.0.0 开启远程权限
appendonly yes 开启aof持久化
4 启动redis服务运行容器
docker run --name redis -v /usr/local/redis/data:/data -v /usr/local/redis/redis.conf:/usr/local/etc/redis/redis.conf -p 6379:6379 -d redis:6.0.10 redis-server /usr/local/etc/redis/redis.conf
解释: -v /usr/local/redis/data:/data # 将数据目录挂在到本地保证数据安全
-v /root/redis/redis.conf:/usr/local/etc/redis/redis.conf # 将配置文件挂在到本地修改方便
5 直接进去redis客户端。
docker exec -it redis redis-cli
其他
我们运行docker容器的时候,使用了-d参数,把容器在后台运行后。
1.启动docker容器
docker run -d -i -t <imageID> /bin/bash
上述命令执行某些命令回报错Failed to get D-Bus connection: Operation not permitted
可使用如下命令启动
docker run -d -i -t <imageID> /usr/sbin/init
docker自启命令
systemctl enable docker 设置docker开机自启
systemctl disable docker 关闭docker开机自启
设置容器自动重启
创建容器时设置
docker run -d --restart=always --name 设置容器名 使用的镜像
(上面命令 --name后面两个参数根据实际情况自行修改)
--restart具体参数值详细信息:
no 容器退出时,不重启容器;
on-failure 只有在非0状态退出时才重新启动容器;
always 无论退出状态是如何,都重启容器;
修改已有容器,使用update
docker update --restart=always 容器ID(或者容器名)
运行容器报错权限不足
在docker run 命令中加上–privileged=true 即可
这个时候,我们使用docker ps命令,我们就可以知道哪些程序在后台运行。
systemctl start docker 启动docker服务
systemctl stop docker 停止docker
docker -v
systemctl enable docker
systemctl stop docker
//dockers 查询
docker search xxxx
//拉取
docker pull xxx
//查看镜像
docker images
//删除镜像
docker rmi 镜像id
//运行镜像
docker run --name mysql -d 镜像名:标签
//查看运作中的容器
docker ps
//启动、停止、删除容器
docker start
docker stop 容器id
docker rm 容器id
//启动一个做了端口映射的tomcat
docker run -d -p 8888:8080 tomcat
-p: 将主机的端口映射到容器的端口
//启动MySQL
docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
查看所有镜像 docker images
删除镜像(会提示先停止使用中的容器) docker rmi 镜像name/镜像id
查看所有容器 docker ps -a
查看容器运行日志 docker logs 容器名称/容器id
停止容器运行 docker stop 容器name/容器id
终止容器后运行 docker start 容器name/容器id
容器重启 docker restart 容器name/容器id
删除容器 docker rm 容器name/容器id
镜像搜索
##搜索仓库MySQL镜像
docker search mysql
--filter=stars=600:只显示 starts>=600 的镜像
docker search --filter=stars=600 mysql
--no-trunc 显示镜像完整 DESCRIPTION 描述
docker search --no-trunc mysql
--automated :只列出 AUTOMATED=OK 的镜像
docker search --automated mysql
镜像下载
下载Redis官方最新镜像,相当于:docker pull redis:latest
docker pull redis
下载仓库所有Redis镜像
docker pull -a redis
下载私人仓库镜像
docker pull bitnami/redis
镜像删除
单个镜像删除,相当于:docker rmi redis:latest
docker rmi redis
强制删除(针对基于镜像有运行的容器进程)
docker rmi -f redis
多个镜像删除,不同镜像间以空格间隔
docker rmi -f redis tomcat nginx
删除本地全部镜像
docker rmi -f $(docker images -q)
Docker安装RabbitMQ
1、下载RabbitMQ镜像
docker pull rabbitmq:management
2、开启容器
docker run -d -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management
docker run -d -p 15672:15672 -p 5672:5672 rabbitmq:management
自定义JDK镜像
切换到cd /usr/local
创建文件mkdir docker
进入cd docker
添加准备好的jdk压缩包jdk-8u281-linux-x64.tar.gz
vim Dockerfile
添加如下:
FROM centos:latest
MAINTAINER awei
ADD jdk-8u281-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_281
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH$PATH:$JAVA_HOME/bin
CMD java -version
构建镜像docker build -t awei_jdk1.8.0_281 .
运行镜像:docker run -d awei_jdk1.8.0_281
部署war项目
vim Dockerfile
awei_tomcat-9.0.44
MAINTAINER awei
ADD springboot-web-1.0.0.war /usr/local/apache-tomcat-9.0.44/webapps
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.44/bin/catalina.sh run
构建镜像:docker build -t springboot-web-war .
运行镜像:docker run -d -p 8080:8080 springboot-web-war
部署jar项目
vim Dockerfile
FROM awei_jdk1.8.0_281
MAINTAINER awei
ADD springboot-web-1.0.0.jar /opt
RUN chmod +x /opt/springboot-web-1.0.0.jar
CMD java -jar /opt/springboot-web-1.0.0.jar
构建镜像:docker build -t springboot-web-jar .
运行镜像:docker run -d -p 8080:8080 springboot-web-jar
安装elastic search
dokcer中安装elastic search
下载ealastic search(存储和检索)和kibana(可视化检索)
docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2
注意版本要统一
配置
mkdir -p /usr/local/elasticsearch/plugins
mkdir -p /usr/local/elasticsearch/config
mkdir -p /usr/local/elasticsearch/data
es可以被远程任何机器访问
echo "http.host: 0.0.0.0" >/usr/local/elasticsearch/config/elasticsearch.yml
递归更改权限,es需要访问
chmod -R 777 /usr/local/elasticsearch
启动Elastic search
9200是用户交互端口 9300是集群心跳端口
-e指定是单阶段运行
-e指定占用的内存大小,生产时可以设置32G
sudo docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /usr/local/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/local/elasticsearch/data:/usr/share/elasticsearch/data \
-v /usr/local/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
安装kibana
docker pull kibana:7.4.2
启动kibana:
sudo docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.11.129:9200 -p 5601:5601 -d kibana:7.4.2
安装ik分词器
IK提供了两个分词算法:ik_smart和ik_max_word,其中ik_smart为最少切分,ik_max_word为最细力度。分别都有什么区别会在下期文章中给大家提出来。
这里需要注意安装的版本需要跟ElasticSearch版本一致。
进入到ElasticSearch容器中docker exec -it 容器ID /bin/bash
使用wget来进行安装,执行wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip即可。
当你使用wget安装出现Unable to establish SSL connection时执行以下俩个命令即可。
yum install opensslls
yum install openssl-devel
执行cd /usr/share/elasticsearch/plugins来到插件目录创建一个IK目录。
将压缩包移动到IK目录中,执行解压指令elasticsearch-analysis-ik-7.7.0.zip
接着删除压缩包即可,此时你可以看到一个config包和几个jar包
安装Nginx
安装Nginx
随便启动一个nginx实例,只是为了复制出配置
docker run -p 80:80 --name nginx -d nginx:1.10
将容器内的配置文件拷贝到/usr/local/nginx/conf/ 下
mkdir -p/usr/local/nginx/html
mkdir -p /usr/local/nginx/logs
mkdir -p /usr/local/nginx/conf
docker container cp nginx:/etc/nginx/* /usr/local/nginx/conf/
#由于拷贝完成后会在config中存在一个nginx文件夹,所以需要将它的内容移动到conf中
mv /usr/local/nginx/conf/nginx/* /usr/local/nginx/conf/
rm -rf /usr/local/nginx/conf/nginx
终止原容器:
docker stop nginx
执行命令删除原容器:
docker rm nginx
创建新的Nginx,执行以下命令
docker run -p 80:80 --name nginx \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-v /usr/local/nginx/logs:/var/log/nginx \
-v /usr/local/nginx/conf/:/etc/nginx \
-d nginx:1.10
创建“/mydata/nginx/html/index.html”文件,测试是否能够正常访问
访问:http://ngix所在主机的IP:80/index.html