• Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)


    目录

    一、从空白系统中克隆Centos7系统

    二、使用xshell连接docker_tigerhhzz虚拟机​编辑

    三、在CentOS7基础上安装Docker容器

    四、在Docker中进行安装Portainer

    4.1、在Docker中安装MySQL

    4.2、在Docker中安装JDK8,安装Java环境

    4.3、Docker安装redis(缓存)

    4.4、使用 Docker 快速搭建自己的 GitLab

    五、项目部署所需

    1、安装C和C++的环境

    2、安装Nginx反向代理


    最近自己在虚拟机上搭建一个docker,将项目运行在虚拟机中。

    需要提前准备的工具,XShell(远程链接工具),VM(虚拟机-配置网络)、CentOS7(Linux操作系统-在虚拟机上安装)

    一、从空白系统中克隆Centos7系统


    选择已经安装好的centos7系统,鼠标右键--管理---克隆:

     

       

    开启docker_tigerhhzz虚拟机

    二、使用xshell连接docker_tigerhhzz虚拟机


     

    连接成功!!!

    查看主机名:

    hostname

    修改主机名为docker_tigerhhzz

    vi /etc/hostname

    :wq保存退出

    重启系统 reboot

    三、在CentOS7基础上安装Docker容器


    1.已经安装CentOS7后,打开终端,我这里是切换到了root用户,不然每一个命令都要在前面加上【sudo】

    2. 通过前面就知道我是CentOS7,然后官方建议Linux内核在3.10以上【可能】,所以检查当前的内核版本

    uname -r

    我这里的版本是3.10,正好满足要求。

    3.使用root权限对yum包进行更新

    yum -y update

    注释:以下两个的区分

    1. yum -y update #升级所有包同时也升级软件和系统内核
    2. yum -y upgrade #只升级所有包,不升级软件和系统内核

    4.如果之前已经安装过的话,可以在此卸载以前的版本。

    yum remove docker docker-common docker-selinux docker-engine

    5.开始安装Docker了,安装需要的软件包,分别为yum-util 提供yum-config-manager功能,另外两个则是devicemapper驱动依赖

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

    出现如下图所示,则代表成功安装了需要的软件包

    6.设置yum源,我一般使用阿里仓库的,以下有两种推荐

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    (中央仓库)

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

    推荐使用阿里云!!!(阿里仓库)
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    7. 先查看一下有哪些Docker版本。

    yum list docker-ce --showduplicates | sort -r

    8.选择一个版本进行安装,我这里选择docker-ce-18.03.1.ce,当然可以选择其他版本

    yum -y install docker-ce-18.03.1.ce

    显示如上图则代表安装成功

    9.启动Docker并设置开启自动启动

    1. systemctl start docker #启动Docker
    2. systemctl enable docker #开启开机自启模式

    10.查看docker版本

    docker version

    结束Docker的安装了

    四、在Docker中进行安装Portainer


    1.拉取portainer镜像,当然你可以事先搜索一下有哪些Portainer镜像

    搜索镜像:

    docker search portainer

    拉取镜像:

    docker pull portainer/portainer

    2.查看镜像是否被拉取成功

    docker images

    3.运行portainer

    docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --name prtainer portainer/portainer

    解释:

    • -d:容器在后台运行;
    • -p 9000:9000 :宿主机9000端口映射容器中的9000端口(前面的是宿主机端口,后面的是容器端口);
    • –restart 标志会检查容器的退出代码,并据此来决定是否要重启容器,默认不会重启;
    • –restart=always:自动重启该容器;
    • -v /var/run/docker.sock:/var/run/docker.sock :把宿主机的Docker守护进程(Docker daemon)默认监听的Unix域套接字挂载到容器中;
    • -v portainer_data:/data :把宿主机portainer_data数据卷挂载到容器/data目录;
    • –name prtainer-test : 给容器起名为portainer;

    4.查看portainer是否在运行

    docker ps

    5.发现portainer确实已经正在运行,所以我们现在就可以去使用Portainer了。

    访问地址为:http://虚拟机IP:9000,ip是指你当前虚拟机的ip,首次访问要创建管理员账号和密码(用户名:admin,密码:123456),如下图所示

    这就结束了Docker安装Portainer了。

    4.1、在Docker中安装MySQL

    1、在系统中可能存在mysql的安装包,使用docker ps -a查看运行的所有容器。

    如果已经存在mysql镜像的容器,可以使用以下命令停止和删除使用该MySQL镜像的容器:

    docker ps -a
    1. docker stop mysql-container # MySQL镜像的容器名称
    2. docker rm mysql-container # MySQL镜像的容器名称 mysql-container为MySQL镜像的容器名称。

    2、可能删除出现问题,采用强制删除MySQL镜像:使用以下命令强制删除MySQL镜像:

    docker rmi -f mysql:latest

    这将强制删除名为"mysql:latest"的MySQL镜像。

    3、当删除完成之后,重新拉取MySQL镜像:

    docker pull mysql:latest

    Error response from daemon: missing signature key错误解决:

    docker安装的版本低了,需要升级:

    完整复制下面的内容

    1. yum erase docker \
    2.                   docker-client \
    3.                   docker-client-latest \
    4.                   docker-common \
    5.                   docker-latest \
    6.                   docker-latest-logrotate \
    7.                   docker-logrotate \
    8.                   docker-selinux \
    9.                   docker-engine-selinux \
    10.                   docker-engine \
    11.                   docker-ce


     
    执行完之后,再执行

    yum install docker-ce -y


    至此,已经更新完毕,不需要卸载docker其他的东西,有些还要将容器什么的全部卸载,不用

    下载完后,需要重启 docker

    1. # 启动docker
    2. systemctl start docker
    3.  
    4. # 开启开机自启模式
    5. systemctl enable docker


     这时候,拉取镜像还是出现了一些问题,docker 在启动容器的时候,报错

    Error response from daemon: unknown or invalid runtime name: docker-runc
    解决方式如下,执行以下命令

    grep -rl 'docker-runc' /var/lib/docker/containers/ | xargs sed -i 's/docker-runc/runc/g'


     然后,重启docker

    1. # 启动docker
    2. systemctl start docker
    3.  
    4. # 开启开机自启模式
    5. systemctl enable docker

    4、重新运行MySQL容器:在删除容器和镜像后,重新运行MySQL容器:

    docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql

    5、运行完成之后,检验是否安装成功

    1. docker exec -it mysql-container bash #进入mysql容器中
    2. mysql -r -p #输入密码登录
    3. select version(); #查看版本号
    4. Show databases; #查看全部数据库

    6、至此数据库MySQL安装完成。

    7、为了方便操作数据库,我们使用Navicat,来远程链接虚拟机MySQL。

    通过SSH方式链接,可以查看到全部的数据库,方便开发使用。

    8、通过portainer查看MySQL运行情况

    portainer登录用户名admin

    登录密码123456123456

    4.2、在Docker中安装JDK8,安装Java环境

    1、拉取Java镜像(OpenJDK 8):

    1. docker pull openjdk:8-jdk
    2. # 或者直接用docker运行 jdk1.8,如果找不到jdk镜像,docker会自动从远程仓库中拉取最新的jdk镜像,下载完成后自动启动运行。
    3. docker run -di --name=jdk1.8 openjdk

    2、查看镜像 

    docker ps

    3、进入jdk容器 

    docker exec -it jdk1.8 /bin/bash

    4、验证Java是否正确安装:

    java -version

    Java正确安装,可以看到JDK 8的版本信息。

    5、可以通过portainer查看jdk是否在运行

    http://192.168.162.100:9000/#!/2/docker/containers

    4.3、Docker安装redis(缓存)

    1、拉取Redis镜像并运行容器:

    拉取Redis镜像:

    docker pull redis

    运行Redis容器:

    docker run -d --name myredis -p 6379:6379 redis
    

    2、这将在后台运行一个名为myredis的Redis容器,并将容器内的6379端口映射到主机的6379端口。

    验证Redis是否正确安装:

    使用Redis客户端连接到Redis容器:

    docker exec -it myredis redis-cli

    3、在Docker中设置Redis的密码

    请参考阅读博文:在Docker中设置Redis的密码

    4、在Redis命令行中执行一些简单的命令,例如:

    1. auth 12345 #授权,输入redis密码
    2. set mykey "Hello Redis"
    3. get mykey

    5、能够成功设置和获取键值对,则表示Redis已正确安装并运行。

    6、可以通过portainer查看redis是否在运行

    4.4、使用 Docker 快速搭建自己的 GitLab

    1,「下载镜像」

    通过 docker pull 命令下载 gitlab 的镜像,这个过程需要花费一些时间

    docker pull gitlab/gitlab-ce:latest
    

    下载完成后查看一下是否下载成功,如果你能看到输出信息中已经有了 gitlab/gitlab-ce 的话,说明镜像下载成功了

    docker images

    2,启动服务

    现在我们只需要启动 gitlab 服务就可以了

    1. docker run --detach \
    2. --publish 10443:443 --publish 1080:80 --publish 1022:22 \
    3. --name gitlab \
    4. --restart always \
    5. --volume /mydata/gitlab/config:/etc/gitlab \
    6. --volume /mydata/gitlab/logs:/var/log/gitlab \
    7. --volume /mydata/gitlab/data:/var/opt/gitlab \
    8. gitlab/gitlab-ce:latest

    「配置项」

    1. --shm-size 32g   ;  将 shm 共享内存的大小设置为了 32G,一开始的时候我没有设置,导致总是报 500 或者 502 的错误

    2. --hostname  dockertigerhhzz.com   ; 设置你的 gitlab 服务所使用的域名,随后你进入到 gitlab 的 web 界面后,通过 git 拉取代码或者推送代码,它在 web 界面所展示的主机的地址都是会受这个配置项影响的

    3. --publish 10443:443  ; 将 宿主机的10443 端口和 docker 容器的 443 端口映射,剩余两个端口映射同理

    4. --name gitlab  ; 配置启动后的容器名

    5. --restart always  ; 容器挂掉了是否自动重启,自动自动重启

    6. --volume /mydata/gitlab/config:/etc/gitlab \ 将宿主机的volume /mydata/gitlab/config 目录挂载到 Docker 容器的 /etc/gitlab 目录上,其实就是让它存数据的时候直接存在宿主机的文件系统上嘛。在这里我挂在目录的时候使用了宿主机上,我们创建的那些目录的绝对路径形式。剩余的两个目录挂载也是同理的

    好啦,现在我们就运行上面的那一串命令就可以启动 gitlab 服务了,启动需要花一些时间,大概 1 到 2 分钟的样子。

    3,「查看容器状态」

    通过如下命令查看容器是否正常运行

    docker ps
    

    在这里可以看到,我的服务已经运转了 。

    4,开启防火墙的指定端口

    由于Gitlab运行在1080端口上,所以我们需要开放该端口,注意千万不要直接关闭防火墙,否则Gitlab会无法启动。

    1. # 开启1080端口
    2. firewall-cmd --zone=public --add-port=1080/tcp --permanent
    3. # 重启防火墙才能生效
    4. systemctl restart firewalld
    5. # 查看已经开放的端口
    6. firewall-cmd --list-ports

    5,访问Gitlab

    • 访问地址:http://192.168.162.100:1080/
    • 由于Gitlab启动比较慢,需要耐心等待10分钟左右,如果Gitlab没有启动完成访问,会出现如下错误。

    • 可以通过docker命令动态查看容器启动日志来知道gitlab是否已经启动完成。
    docker logs gitlab -f

    Gitlab的使用Gitlab启动完成后第一次访问,会让你重置root帐号的密码

    「默认账户」

    1. 用户名: 默认的用户名是 root

    2. 密码:而 root 用户默认的密码是被放在 ~/mydata/gitlab/config 目录中的 initial_root_password 文件中,你可以通过命令 cat ~/mydata/gitlab/config/initial_root_password 来查看内容,然后把这个密码复制下来就可以登录 gitlab 了

    注意我们在找默认密码的时候,是在宿主机的目录中去找,因为你已经把这个目录给挂载上去了,你就直接在宿主机的文件系统中去找那个默认密码的文件就可以了,并且这个默认密码的文件会在 24 小时后被自动删除,你一定要及时修改密码嗷。

    「关于备份」

    你只需要把我们创建的那三个文件夹备份好就可以了,如果换了一个地方部署 gitlab 应用,你只需要把相应的文件夹进行挂载即可

    五、项目部署所需

    1、安装C和C++的环境

    1、在docker中下载环境并部署

    1. yum install gcc
    2. yum install gcc-c++

    2、输入命令检查是否安装成功

    1. gcc --version
    2. g++ --version

    3、C和C++的环境安装成功!

    2、安装Nginx反向代理

    1、拉取nginx镜像

    docker pull nginx

    2、运行启动

    docker run -d -p 80:80 --name mynginx nginx

    3、打开浏览器输入http://192.168.162.10:80,可以出现默认nginx的页面,表示安装成功

  • 相关阅读:
    Navicat将视图结构导出为可运行SQL文件
    【PTA 题目详解】 7-10 猴子吃桃
    软件测试/测试开发丨人工智能产品质量保障:挑战与创新
    MongoDB副本集配置和创建
    性能测试工具:Jmeter介绍
    区块链技术与AI:IT领域的未来合作伙伴
    java校园共享单车管理系统
    有哪些专业的配音APP推荐?
    在OpenWrt中配置使用FTP文件服务
    企业微信托管集成语聚AI,做AI智能客服助手,实现精准回答用户问题、创建群组自动化场景
  • 原文地址:https://blog.csdn.net/weixin_43025151/article/details/134352538