Bootstrap

Linux安装Docker,拉取各种镜像并创建容器

前言

Docker应用需要用到各种端口,所以在启动docker前,一定要关闭防火墙!!!

关闭防火墙: systemctl stop firewalld        禁止开机启动防火墙:systemctl disable firewalld

本文关于docker拉取的镜像将持续更新~~

目录

一、安装docker 

1.1卸载旧版本(可选)

1.2安装

二、docker常用命令

2.1 docker己类:

2.2 docker镜像类:

2.3 docker容器类:

三、docker安装nacos

四、docker安装redis

五、docker安装sentinel

六、docker安装zipkin

七、docker安装minio

八、docker安装mysql

九、docker安装nginx

十、docker安装rabbitmq


一、安装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
;