linux系统下docker的安装及基本服务的部署

193 阅读4分钟

docker的安装

1 yum 包更新到最新 

yum update


2 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

3 设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4 安装docker,出现输入的界面都按 y 

yum install -y docker-ce

5 查看docker版本,验证是否验证成功

docker -v

6 配置docker加速

https://blog.csdn.net/weixin_67450855/article/details/128178366

docker的基础命令

1 启动docker

systemctl start docker

2 关闭docker

systemctl stop docker 

3 重启docker

systemctl restart docker 

4 设置docker开机自启动

systemctl enable docker

5 查看docker运行状态

systemctl status docker 

6 docker的帮助命令

docker --help

docker 搜索镜像

docker  search redis

docker 拉取image

docker pull redis:version

查看下载的镜像

docker images

移除镜像

docker rmi xxx

移除所有镜像

docker rmi `docker images`

#删除一个
docker rmi -f 镜像名/镜像ID

#删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)

查看正在运行的容器

docker  ps

查看所有容器包括正在运行和停掉的容器 

docker  ps  -a

运行一个容器

-it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)

--name 给要运行的容器 起的名字  /bin/bash  交互路径

docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash 

部署mysql(仅测试用)

搜索mysql镜像

docker search mysql

拉取mysql镜像

docker pull mysql:5.6

创建容器,设置端口映射、目录映射


在/root目录下创建mysql目录用于存储mysql数据信息

mkdir ~/mysql
cd ~/mysql

docker run -id \
-p 3306:3306 \
--name=mysql \
-v $PWD/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7 --character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci 

更多参考链接
https://blog.csdn.net/weixin_44037416/article/details/117956869
https://blog.csdn.net/ligengdipan/article/details/107849994
[【精选】【Docker 基础教程】Mysql主从环境搭建_使用docker搭建 mysql主从_酷尔。的博客-CSDN博客](https://blog.csdn.net/apple_51931783/article/details/126350430)

我的mysqld.cnf配置内容

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
log-error=/var/log/mysql/error.log
symbolic-links=0
default-storage-engine=INNODB
max_connections=1000
max_connect_errors=10
lower_case_table_names=1
max_allowed_packet=128M
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

进入容器,操作mysql

docker exec –it c_mysql /bin/bash

部署tomcat

搜索tomcat镜像

docker search tomcat

拉取tomcat镜像

docker pull tomcat

创建容器,设置端口映射、目录映射

在/root目录下创建tomcat目录用于存储tomcat数据信息

mkdir ~/tomcat

cd ~/tomcat 

备注 在webapps

docker run -id --name=cpc-web-tomcat \
-p 8090:8090 \
-v /home/deploy/kdh/cpc-web/tomcat/webapps:/usr/local/tomcat/webapps \
-v /home/deploy/kdh/cpc-web/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml \
-v /home/deploy/kdh/cpc-web/tomcat/logs/cpc-web:/usr/local/tomcat/logs \
tomcat:8.5

部署nginx

docker search nginx   

docker pull nginx     

mkdir ~/nginx

cd ~/nginx

mkdir conf

cd conf
在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容

vim nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

从docker容器中copy数据(备注如果linux系统在80端口启动了nginx服务,部署有变,具体看下面的内容)

docker container cp c_nginx:/etc/nginx /mydata/nginx/conf/

部署nginx

docker run -id --name=c_nginx \
-p 90:90 \
-v /home/nginx/conf.d:/etc/nginx/conf.d/ \
-v /home/cysteine/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/cysteinelogs:/var/log/nginx \
-v /home/cysteine/html:/usr/share/nginx/html \
nginx:1.18.0

参数说明:

-   **-p 80:80**:将容器的 80端口映射到宿主机的 80 端口。
-   **-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf**:将主机当前目录下的 /conf/nginx.conf 挂载到容器的 :/etc/nginx/nginx.conf。配置目录
-   **-v $PWD/logs:/var/log/nginx**:将主机当前目录下的 logs 目录挂载到容器的/var/log/nginx。日志目录

部署redis

docker pull redis
docker run -d --name redis --restart=always -p 6379:6379 redis --requirepass "leadnews"

部署nextcloud

docker search nextcloud
docker pull nextcloud
docker run -d -p 8888:80 nextcloud

部署mongodb

docker pull mongo
docker run -di --name mongo-service --restart=always -p 27017:27017 -v ~/data/mongodata:/data mongo

部署fastdfs

docker pull delron/fastdfs
docker run -d --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
docker run -d --network=host --name storage -e TRACKER_SERVER=ip:22122 -v /var/fdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage
https://blog.csdn.net/wlwlwlwl015/article/details/52619851
#docker安装
https://blog.csdn.net/qq_37534947/article/details/106429656
ps: 需要放行23000,22122,8888端口

部署nacos

docker pull nacos/nacos-server:1.2.0
docker run --env MODE=standalone --name nacos --restart=always  -d -p 8848:8848 nacos/nacos-server:1.2.0

部署minio

docker pull minio/minio
mkdir -p /home/minio/config
mkdir -p /home/minio/data
docker run -p 9000:9000 -p 9091:9090 \
--net=host \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /home/minio/data:/data \
-v /home/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9091" -address ":9000"

部署kafka

docker pull zookeeper:3.4.14
docker run -d --name zookeeper -p 2181:2181 zookeeper:3.4.14
docker pull wurstmeister/kafka:2.12-2.3.1
docker run -d --name kafka \
--env KAFKA_ADVERTISED_HOST_NAME=192.168.200.130 \
--env KAFKA_ZOOKEEPER_CONNECT=192.168.200.130:2181 \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.200.130:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
--env KAFKA_HEAP_OPTS="-Xmx256M -Xms256M" \
--net=host wurstmeister/kafka:2.12-2.3.1

部署es

docker pull elasticsearch:7.4.0
docker run -id --name elasticsearch -d --restart=always -p 9200:9200 -p 9300:9300 -v /usr/share/elasticsearch/plugins:/usr/share/elasticsearch/plugins -e "discovery.type=single-node" elasticsearch:7.4.0

#配置分词器

#切换目录
cd /usr/share/elasticsearch/plugins
#新建目录
mkdir analysis-ik
cd analysis-ik
#root根目录中拷贝文件
mv elasticsearch-analysis-ik-7.4.0.zip /usr/share/elasticsearch/plugins/analysis-ik
#解压文件
cd /usr/share/elasticsearch/plugins/analysis-ik
unzip elasticsearch-analysis-ik-7.4.0.zip