前言
Docker应用需要用到各种端口,所以在启动docker前,一定要关闭防火墙!!!
关闭防火墙: systemctl stop firewalld 禁止开机启动防火墙:systemctl disable firewalld
本文关于docker拉取的镜像将持续更新~~
目录
一、安装docker
1.1 卸载旧版本(可选)
如果之前安装过旧版本的Docker,可以使用下面命令卸载:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
1.2 安装
(1)虚拟机联网安装yum工具:
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
(2)更新本地镜像源:
- 设置docker镜像源:
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
- 更新yum软件包索引:
yum makecache fast
(3)输入命令安装docker, docker-ce为社区免费版本:
yum install -y docker-ce
二、docker常用命令
记得关闭防火墙!
2.1 docker己类:
#启动docker服务
systemctl start docker
#设置docker开机自启(推荐)
systemctl enable docker
#停止docker服务
systemctl stop docker
#重启docker服务
systemctl restart docker
#查看docker版本
docker -v
2.2 docker镜像类:
#搜索镜像
docker search 镜像名
#拉取镜像,可加版本号,如 docker pull mysql:5.7
docker pull 镜像名
#列出所有镜像
docker images
#删除单个镜像,加 -f 强制删除
docker rmi 镜像名或id
#删除所有镜像
docker rmi $(docker images -q)
2.3 docker容器类:
#列出正在运行的容器
docker ps
#列出所有容器,无论是否在运行
docker ps -a
#列出容器的文件大小
docker ps -s
#启动单个容器
docker start CONTAINER_ID
#重启容器
docker restart CONTAINER_ID
#停止单个容器
docker stop CONTAINER_ID
#进入容器
docker exec -it [container_name/ID] bash
#查看容器日志
docker logs -f [container_name/ID]
#删除单个容器,加 -f 强制删除
docker rm CONTAINER_ID
#停止所有容器
docker stop $(docker ps -a -q)
#启动所有容器
docker start $(docker ps -a -q)
#删除所有容器
docker rm $(docker ps -a -q)
#设置容器自启
--restart=always
三、docker安装nacos
3.1拉取nacos镜像
docker pull nacos/nacos-server
3.2创建nacos容器并运行,访问地址:ip:8848/nacos
docker run -d --name nacos -p 8848:8848 -e MODE=standalone nacos/nacos-server
四、docker安装redis
4.1拉取redis镜像
docker pull redis
4.2创建redis容器并运行,不需要用户名,密码为root,可自定义
docker run \
--name redis \
-p 6379:6379 \
-v /usr/redis/data:/data \
-v /usr/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis:latest redis-server /etc/redis/redis.conf --requirepass root
五、docker安装sentinel
5.1拉取sentinel镜像
docker pull bladex/sentinel-dashboard
5.2创建sentinel容器并运行,访问地址:ip:8858,用户和密码都是sentinel
docker run --name sentinel -p 8858:8858 -d bladex/sentinel-dashboard:latest
六、docker安装zipkin
6.1拉取zipkin镜像
docker pull openzipkin/zipkin
6.2创建zipkin容器并运行,访问地址:ip:9411
docker run -d -p 9411:9411 openzipkin/zipkin:latest
七、docker安装minio
7.1拉取minio镜像
docker pull minio/minio
7.2创建minio容器并运行,最新版minio新建容器的命令较特殊,api端口要和console端口不一样,浏览器访问端口是9001,java代码中的端口是9000
docker run -d \-p 9000:9000 \-p 9001:9001 \--name minio1 \-v /home/minio/data:/data \-e "MINIO_ROOT_USER=minio" \-e "MINIO_ROOT_PASSWORD=minio123" \minio/minio server /data --console-address ":9001"
八、docker安装mysql
8.1因为后面创建mysql容器时要使用-v 命令备份,但是会报错:Can‘t read dir of '/etc/mysql/conf.d/',所以要先在主机创建conf.d目录
mkdir -p /etc/mysql/conf.d
8.2拉取mysql镜像
docker pull mysql
8.3创建mysql容器并运行,账号默认是root,密码自定义。
-v命令含义举例: -v /usr/local/mysql/log:/var/log/mysql:将容器/var/log/mysql目录下的数据,备份到主机的 /usr/local/mysql/log目录下。
通过此处-v 命令备份后,就算当前mysql容器实例被删除,那么再次创建mysql容器后,数据将会自动从主机加载到容器当中,修改内容只需在本地修改而无须进入到容器内部进行修改。
docker run -d -p 3306:3306 --name mysql -v /usr/local/mysql/log:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=your_pwd mysql
8.4切换到上述命令配置的主机 /usr/local/mysql/conf
目录下,使用vi
命令创建并编辑my.cnf
文件,保存退出后重启容器
cd /usr/local/mysql/conf
vi my.cnf
my.cnf文件
需要添加的内容
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
九、docker安装nginx
9.1创建数据持久化目录
mkdir -p /usr/local/nginx/{html,conf,log}
9.2创建需要映射的配置文件
vi /usr/local/nginx/conf/nginx.conf
#配置用户或者组,默认为nobody nobody。
#user nobody;
#配置处理器个数(应不大于cpu核心数)
worker_processes 1;
#工作模式以及连接数上限
events {
worker_connections 5000;#最大连接数,默认为1024
}
http {
#设定mime类型,类型由mime.type文件定义。文件扩展名与文件类型映射表
include mime.types;
#默认文件类型 默认为text/plain
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#虚拟主机的配置
server {
#监听窗口
listen 80;
#定义使用localhost,也可以自动定义域名访问
#域名可以有多个用空格隔开
server_name localhost;
#默认请求
location / {
#定义服务器的默认网站根目录位置
root html;
#定义首页索引文件的名称 定义多个用空格隔开
index index.html index.htm;
}
# 定义 50x错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
9.3拉取nginx镜像
docker pull nginx
9.4创建容器并映射宿主机文件
docker run --privileged=true -it -d --name nginx --restart=always -p 80:80 -v /usr/local/nginx/html:/etc/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/log:/var/log/nginx nginx
9.5将vue项目打包成的dist文件全部放进宿主机的html目录,重启nginx容器,通过ip就可以访问了
十、docker安装rabbitmq
10.1拉取rabbitmq镜像,-management:带有管理插件
docker pull rabbitmq:3.7.7-management
10.2创建并运行容器。5672:应用访问端口;15672:控制台Web端口,账号密码都是guest
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.7.7-management