服务器安装部署

步骤

  1. Ubantu创建root用户
  2. 查看Ubantu系统信息
  3. Ubantu更新源列表
  4. Ubantu安装net-tools
  5. 安装Docker
  6. 安装Openssh
  7. 安装Docker-Compose
  8. 拉取镜像,在Docker中安装mysql、nginx、redis、mqtt等

Ubantu创建root用户

  1. 输入命令:sudo passwd root,回车。

  2. [sudo] password for 当前用户:输入当前用户的密码。

  3. Enter new UNIX password:输入root用户密码。

  4. Retype new UNIX password:再次输入root用户密码。

  5. 输入命令:su,回车。

  6. 输入root用户的密码,切换成功。

查看Ubantu系统信息

  1. 查看ubantu系统是32位还是64位:getconf LONG_BIT

  2. 查看系统信息:lsb_release -a

  3. 查看操作系统架构:uname -a

Ubantu更新源列表

  1. 更新源列表

    1. root用户:`apt-get update`

    2. 非root用户:`sudo apt-get update`

Ubantu安装net-tools

  1. 输入命令:ifconfig,回车,出现Command 'ifconfig' not found,but can be installed weith:sudo apt install net-tools

  2. 安装net-tools

    • root用户:apt install net-tools

    • 非root用户:sudo apt install net-tools

  3. 安装ping相关工具:apt install iputils-ping

  4. 安装vim编辑器:apt install vim

  5. 安装curl:apt install curl

Ubantu安装openssh

  • 想登陆别的机器的SSH只需要安装openssh-client。

  • 本机开放SSH服务需要安装openssh-server。

  • 安装openssh,可以远程连接服务器。

  • 查看当前的ubantu是否安装ssh-server服务:dpkg -l | grep ssh,默认只安装ssh-client服务。

  • root用户安装openssh-server服务:apt-get install openssh-server

  • root用户确认ssh-server是否启动:ps -e | grep ssh,如果看到sshd,说明ssh-server已经启动。

  • 启动ssh-server:sudo /etc/init.d/ssh start或者sudo service ssh start

  • ssh-server的配置文件位于/etc/ssh/sshd_config

  • 停止ssh-server服务:sudo /etc/init.d/ssh stop

安装Docker

参考博文:https://www.cnblogs.com/blog-rui/p/11244023.html

安装步骤

  • 使用国内仓库官方安装脚本自动安装:curl -sSL https://get.daocloud.io/docker | sh

命令

  • 卸载Docker:sudo apt-get purge docker-ce

  • 删除镜像、容器、配置文件:sudo rm -rf /var/lib/docker,这是镜像和容器的默认存储位置。

  • 重新启动已经停止的容器:

    • 根据名字启动容器:sudo docker start 容器名

    • 根据id启动容器:sudo docker start 容器id

    • 根据名字重启容器:sudo docker restart 容器名

  • 停止容器:sudo docker stop 容器名

  • 查看容器日志:

    • 查看全部日志:sudo docker logs 容器名

    • 查看实时日志:sudo docker logs -f 容器名

    • 为每条位置加上时间戳:sudo docker logs -ft 容器名

  • 容器命名:sudo docker run --name 容器名 ubantu

  • 启动docker:sudo service docker start

  • 停止docker:sudo service docker stop

  • 重启docker:sudo service docker restart

  • 列出镜像:docker images

  • 搜索镜像:docker search 镜像名

  • 删除镜像:docker image rm 镜像名或镜像id

  • 拉取镜像:docker pull 镜像名

  • 将容器保存为镜像:docker commit 容器名 镜像名

  • 停止一个已经在运行状态的容器:docker container stop 容器名或容器id

  • 启动一个已经停止的容器:docker container start 容器名或容器id

  • kill掉一个已经在运行状态的容器:docker container kill 容器名或容器id

  • 查看容器的信息:docker inspect 容器id

  • 指定容器名删除容器:docker rm 容器名

  • 创建容器:docker run [option] 镜像名 [向启动容器中传入的命令]

    • -i:表示以“交互模式”运行容器。

    • -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。

    • --name:为创建的容器命名。

    • -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。

    • -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。

    • -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射

    • -e:为容器设置环境变量。

    • --network=host:表示将主机的网络环境映射到容器中,容器的网络与主机相同。

  • 添加docker用户组:sudo groupadd docker,docker在安装时,已经创建了docker用户组。

  • 将指定用户添加进docker用户组,使得指定用户操作docker时,不需要添加sudo,sudo usermod -aG docker 指定用户名

  • 设置docker服务开启启动:sudo systemctl start docker

安装Docker-Compose

安装步骤

  • 下载docker-compose,要安装其他版本,可替换1.27.4。
    curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  •  将可执行权限应用于二进制文件:chmod +x /usr/local/bin/docker-compose

Docker安装mysql

安装步骤

  • 搜索镜像:docker search mysq:5.7.25
  • 拉取镜像:docker pull mysq:5.7.25
  • 创建容器:
    docker run -d -v /data/data:/var/lib/mysql --privileged --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=密码 --restart=always mysql:5.7.25

mysql不能远程连接

参考博文:mysql远程连接 Host * is not allowed to connect to this MySQL server_杨航JAVA的博客-CSDN博客https://blog.csdn.net/hanghangaidoudou/article/details/70207769

  • 进入MySQL的docker容器bash:docker exec -it mysql bash
  • 退出bash并在后台运行容器:ctrl+p+q
  • 进入MySQL命令行:mysql -u root -p,回车,输入密码。
  • 输入命令:
    • use mysql;
    • 修改host值,以通配符%的内容增加主机/IP地址:update user set host='%' where user='root';
    • flush privileges;
    • select host,user from user where user='root';
    • quit;

mysql5.7忘记密码

  • 进入容器:docker exec -it mysql bash
  • 设置跳过权限表的加载:echo "skip-grant-tables" >> /etc/mysql/conf.d/docker.cnf
  • 退出容器:exit
  • 重启容器:docker restart mysql
  • 进入容器:docker exec -it mysql bash
  • 登录mysql:mysql -uroot
  • 更新权限:flush privileges;
  • 修改密码:alter user 'root'@'%' identified by '密码'
  • 退出mysql:exit
  • 替换刚刚加的跳过权限表的加载参数:sed -i "s/skip-grant-tables/ /" /etc/mysql/conf.d/docker.cnf
  • 退出容器:exit
  • 重启容器:docker restart mysql

Docker安装Redis

  • 拉取镜像:docker pull redis:latest
  • 创建容器:
    docker run -d --name redis -p 6679:6379 -v /data/redis/redis.conf:/etc/redis/redis.conf redis --requirepass "密码"

Docker安装可视化工具

安装步骤

  • 拉取镜像:docker pull portainer/portainer:latest
  • 创建容器:
    • 本机模式:
      docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name prtainer portainer/portainer
    • 远程模式:
      docker run -d -p 9000:9000 --restart=always --name prtainer portainer/portainer

访问Portainer容器 

  • 访问Portainer容器:http://IP:9000
  • 首次登录,需要设置admin的密码,密码设置为admin123
  • 选择docker连接
    • 选择Local,代表本地模式,Portainer仅管理本机的docker容器。
    • 选择Remote,代表远程模式,名称随意设置,在Endpoint URL中填写docker节点的地址:docker远程端口

Docker安装Nginx

  • 拉取镜像:docker pull nginx:latest
  • 在主机创建挂载目录:
    • mkdir /data/nginx/conf
    • mkdir /data/nginx/html
    • mkdir /data/nginx/logs
  • 在文件夹/data/nginx/conf下,新建nginx.conf文件
    # 设置nginx服务的系统使用用户
    user  root;
    # 工作进程数
    worker_processes  1;
    
    # nginx的错误日志
    error_log  /var/log/nginx/error.log warn;
    # nginx启动时的pid
    pid        /var/run/nginx.pid;
    
    events {
    	# 每个进程允许的最大连接数
        worker_connections  1024;
    }
    
    # http请求配置,一个http可以包含多个server
    http {
    
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
    	# 日志格式,此处的main,与access_log中的main对应
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
    	# 访问日志,后面的main,表示使用log_format中的main格式,记录到access.log中
        access_log  /var/log/nginx/access.log  main;
    
    	# 高效率文件传输
        sendfile        on;
        #tcp_nopush     on;
    
    	# 客户端与服务端的超时时间,单位秒
        keepalive_timeout  65;
    
        #gzip  on;
    	
    	include /etc/nginx/conf.d/*.conf;
    	
    	# http服务,一个server可以配置多个location
        server {
    		# 服务监听端口
            listen  80 default_server;
            server_name default_server;
    		
    		# 页面存放目录
            root /usr/share/nginx/html;
            # 定义变量
            set $root /home;
    		
            location / {
    			# 默认页面
                index index.html index.htm;
            }
        }
    }
    
  • 运行容器并把nginx容器的配置文件挂载到主机
    docker run --name nginx -p 8080:80 --restart=always --privileged=true -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/html:/etc/nginx/html -v /data/nginx/logs:/var/log/nginx -d nginx
  • 查看已启动的容器
  • 打开浏览器访问主机IP加设置的端口

查看docker-compose发送代码的端口

  • cat /lib/systemd/system/docker.service

Ubantu系统端口占用问题

  • 登录ubantu系统,进入终端命令行模式。
  • 输入命令切换到root用户:su root
  • 查找被占用的端口
    • 查看所有端口的使用情况:netstat -tln
    • 查看知道端口的使用情况:netstat -tln | grep 指定端口
  • 查看端口被哪个进程占用:lsof -i :指定端口
  • 根据进程号输入命令,杀掉占用指定端口的进程:kill -9 进程号
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值