Docker安装各种服务

摘要:
添加这两个参数后,可以创建并登录容器。即,分配了伪终端。这是因为CentOS7中的安全模块selinux禁用了权限。我们需要添加

一. centos7设置固定IP

  1. 查看当前正在使用的网络情况

    [root@localhost ~]# nmcli dev status

    显示情况 :

    DEVICE  TYPE      STATE   CONNECTION 
    ens33   ethernet 连接的   ens33      
    lo     loopback 未托管   --  
  2. 修改网络相关配置文件:

    注意: 下面命令中ifcfg-ens33为自己当前使用的网络名称和上面显示的ens33对应

    [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
  3. 修改内容如下:

    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static //如果是dhcp改为static
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=b8fd5718-51f5-48f8-979b-b9f1f7a5ebf2
    DEVICE=ens33
    ONBOOT=yes //如果是no, 改为yes
    IPADDR=192.168.200.128   //ip地址
    GATEWAY=192.168.200.2 //网关, 我的是2, 改成自己的
    NETMASK=255.255.255.0   //子网掩码
    NM_CONTROLLED=no
    DNS1=8.8.8.8 //dns1
    DNS2=8.8.4.4 //dns2
  4. 重启网络设置, 让配置生效:

    [root@localhost ~]# systemctl restart network.service 
  5. 使用命令查看更改情况:

    [root@localhost ~]# ip addr
  6. 连接linux虚拟机等待时间长解决方案:

    在使用SecureCRT连接Linux时,出现窗口显示已连接,但命令行迟迟不出现的情况。这个问题肯定让人十分恼火,尤其在时间紧迫的时候更是让人忍无可忍.

问题原因:其实问题就出在DNS解析IP上

解决方法如下:

(1) 进入配置文件

vim /etc/ssh/sshd_config 

(2) 进入文件vim /etc/ssh/sshd_config中,添加 UseDNS no,之后保存退出。

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
UseDNS no
HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

(3) 使用命令重启ssh服务即可

[root@localhost ~]# service sshd restart   #centos6使用的命令
[root@localhost ~]# systemctl restart sshd.service #centos7使用的命令

 

二. docker软件设置常用命令

systemctl命令是系统服务管理器指令

1.启动docker:

[root@localhost ~]# systemctl start docker

2.停止docker:

[root@localhost ~]# systemctl stop docker

3.重启docker:

[root@localhost ~]# systemctl restart docker

4.查看docker状态:

[root@localhost ~]# systemctl status docker

5.开机启动容器:

[root@localhost ~]# systemctl enable docker

 

三. docker镜像相关常用命令

1.查看镜像

docker images

REPOSITORY:镜像名称

TAG:镜像标签

IMAGE ID:镜像ID

CREATED:镜像的创建日期(不是获取该镜像的日期)

SIZE:镜像大小

这些镜像都是存储在Docker宿主机的/var/lib/docker目录下

2.搜索镜像

如果你需要从网络中查找需要的镜像,可以通过以下命令搜索

docker search 镜像名称

NAME:仓库名称

DESCRIPTION:镜像描述

STARS:用户评价,反应一个镜像的受欢迎程度

OFFICIAL:是否官方

AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

3.拉取镜像

拉取镜像就是从中央仓库中下载镜像到本地

docker pull 镜像名称

例如,我要下载centos7镜像

docker pull centos:7

4.删除镜像

按镜像ID删除镜像

docker rmi 镜像ID

删除所有镜像

docker rmi `docker images -q`

##

四. docker容器相关常用命令

1.容器查看命令

查看正在运行的容器

docker ps

查看所有容器

docker ps –a

2.容器的创建与启动

创建容器常用的参数说明:

创建容器命令:docker run

-i:表示运行容器

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

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

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

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

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

(1)交互式方式创建容器

docker run -it --name=容器名称 镜像名称:标签 /bin/bash

这时我们通过ps命令查看,发现可以看到启动的容器,状态为启动状态

(2)退出当前容器

exit

(3)守护式方式创建容器:

docker run -di --name=容器名称 镜像名称:标签

(4)登录守护式容器方式:

docker exec -it 容器名称 (或者容器ID)  /bin/bash

 

3. 停止与启动容器

停止容器:

docker stop 容器名称(或者容器ID)

启动容器:

docker start 容器名称(或者容器ID)

4. 文件拷贝

如果我们需要将文件拷贝到容器内可以使用cp命令

docker cp 需要拷贝的文件或目录 容器名称:容器目录

也可以将文件从容器内拷贝出来

docker cp 容器名称:容器目录 需要拷贝的文件或目录

5. 目录挂载

我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。创建容器 添加-v参数 后边为 宿主机目录:容器目录,例如:

docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7

如果你共享的是多级的目录,可能会出现权限不足的提示。

这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题

6. 查看容器IP地址

我们可以通过以下命令查看容器运行的各种数据

docker inspect 容器名称(容器ID) 

也可以直接执行下面的命令直接输出IP地址

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)

7. 删除容器

删除指定的容器:

docker rm 容器名称(容器ID)

 

8. 容器中什么命令都没有怎么办

首先在容器中执行如下命令更新源:

apt-get update

然后执行安装各种命令的操作:

apt-get install 命令名称

 

 

五. docker中安装mysql

(1)拉取mysql镜像

docker pull mysql:5.6

(2)创建容器

docker run -di --name=changgou_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin mysql:5.6

-p 代表端口映射,格式为  宿主机映射端口:容器运行端口

-e 代表添加环境变量  MYSQL_ROOT_PASSWORD 是root用户的登陆密码

(3)设置容器开机自动启动

docker update --restart=always 容器ID

(4)远程登录mysql

连接宿主机的IP ,指定端口为3306

 

六. docker中安装Redis分布式缓存

(1)拉取镜像

docker pull redis

(2)创建容器

docker run -di --name=changgou_redis -p 6379:6379 redis

(3)设置容器开机自动启动

docker update --restart=always 容器ID

 

七. docker中安装FastDFS分布式文件系统

(1)拉取镜像

docker pull morunchang/fastdfs

(2)运行tracker

docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh

(3)运行storage

docker run -d --name storage --net=host -e TRACKER_IP=<your tracker server address>:22122 -e GROUP_NAME=<group name> morunchang/fastdfs sh storage.sh
  • 使用的网络模式是–net=host, <your tracker server address> 位置替换为你机器的Ip即可

    我的是192.168.200.128

  • <group name> 是组名,即storage的组, 例如 : 我设置的是group1

  • 如果想要增加新的storage服务器,再次运行该命令,注意更换 新组名

(4)修改nginx的配置

进入storage的容器内部

docker exec -it storage  /bin/bash

进入后修改nginx.conf文件

vi /data/nginx/conf/nginx.conf

在文件的location / 节点结束后, 添加以下内容

location /group1/M00 {
  proxy_next_upstream http_502 http_504 error timeout invalid_header;
    proxy_cache http-cache;
    proxy_cache_valid  200 304 12h;
    proxy_cache_key $uri$is_args$args;
    proxy_pass http://fdfs_group1;
    expires 30d;
}

(5)退出容器

exit

(6)重启storage容器

docker restart storage

(7) 设置容器开机自动启动

docker update --restart=always 容器ID

 

八. docker中安装RabbitMq消息队列
  • 下载镜像

docker pull rabbitmq:management
  • 创建容器

docker run -di --name=changgou_rabbitmq -p 5671:5617 -p 5672:5672 -p4369:4369 -p 15671:15671 -p 15672:15672 -p 25672:25672 rabbitmq:management
解释如下:
15672 (if management plugin is enabled.管理界面 )

15671 management监听端口

5672, 5671 (AMQP 0-9-1 without and with TLS 消息队列协议是一个消息协议)

4369 (epmd) epmd 代表 Erlang 端口映射守护进程

25672 (Erlang distribution)
  • 访问后台

浏览器中输入地址

http://192.168.200.128:15672/
  • 设置容器开机自动启动

docker update --restart=always 容器ID

 

九. docker中安装ElasticSearch搜索

创建elasticsearch和kibana容器

(1) 此elasticsearch和kibana为6.5.4版本

docker run --name=changgou_es -d -p 9200:9200 -p 5601:5601 nshou/elasticsearch-kibana

容器创建完成后可以访问http://192.168.200.128:9200http://192.168.200.128:5601查看es安装是否成功.

(2) 创建elasticsearch-head插件工具容器

docker run -d --name=changgou_es_head -p 9100:9100 mobz/elasticsearch-head:5

(3) 设置容器开机自动启动

docker update --restart=always 容器ID

 

1. 安装elasticsearch和kibana容器

下载elasticsearch-head

docker pull mobz/elasticsearch-head:5
  • 下载elasticsearch版本为5.6.16

docker pull elasticsearch:5.6.16
  • 下载kibana版本号为5.6.16

docker pull kibana:5.6.16
  • 创建一个叫做somenetwork自定义网络

docker network create somenetwork
  • 创建elasticsearch容器(开发模式)

docker run -d --name changgou_es --net somenetwork -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" elasticsearch:5.6.16
  • 查看docker 下的网络 包括自带的及自定义

docker network ls 
  • somenetwork 是自定义网络 查看此自定义网络下 elasticsearch 的ip

docker inspect somenetwork

显示如下: 会看到IP地址为172.18.0.2/16

[
  {
       "Name": "somenetwork",
       "Id": "3ac29fe43eae9287dcfaed2096948a29c3486b871feda29c71487cd300ef44ba",
       "Created": "2019-05-31T13:09:58.07434932+08:00",
       "Scope": "local",
       "Driver": "bridge",
       "EnableIPv6": false,
       "IPAM": {
           "Driver": "default",
           "Options": {},
           "Config": [
              {
                   "Subnet": "172.18.0.0/16",
                   "Gateway": "172.18.0.1"
              }
          ]
      },
       "Internal": false,
       "Attachable": false,
       "Ingress": false,
       "ConfigFrom": {
           "Network": ""
      },
       "ConfigOnly": false,
       "Containers": {
           "3fb4988562c80a06cc9db2940383d2596289232855c105278ab5d4b76d466ff8": {
               "Name": "changgou_es",
               "EndpointID": "c417394e4b2db8180469f3dfd2853598ff593d458f402642998873a0988b4af8",
               "MacAddress": "02:42:ac:12:00:02",
               "IPv4Address": "172.18.0.2/16",
               "IPv6Address": ""
          }
      },
       "Options": {},
       "Labels": {}
  }
]
  • 注意:在此示例中,Kibana使用默认配置,并期望在http://localhost:9200连接到正在运行的Elasticsearch实例

  • 下面的ip是通过上面查看到的elasticsearch的ip 为了让kibana 连接上es

docker run -d --name kibana --net somenetwork -e ELASTICSEARCH_URL=http://172.18.0.2:9200 -p 5601:5601 kibana:5.6.16

 

2. 集成中文分词器Ik分词器

  • 进入elasticsearch容器中

docker exec -it changgou_es /bin/bash
  • 下载ik分词器

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.16/elasticsearch-analysis-ik-5.6.16.zip
  • 进入elasticsearch的插件目录

cd /usr/share/elasticsearch/plugins/
  • 创建一个叫做ik的目录

mkdir ik
  • 回到ik分词器下载的所在目录解压

unzip elasticsearch-analysis-ik-5.6.16.zip -d ./
  • 拷贝解压后里面的内容到刚才创建的ik目录中

 cp elasticsearch/* plugins/ik/
  • 进入到ik所在目录

cd /usr/share/elasticsearch/plugins/ik/
  • 退出容器

exit
  • 重启elasticsearch容器

 docker restart changgou_es

 

3. 容器中安装vim编辑器

  • 进入容器中, changgou_es为容器名称

docker exec -it changgou_es /bin/bash
  • 更新apt

apt-get update
  • 安装vi命令

 apt-get install vim

 

十. centos7中安装JDK8
  • JDK版本 jdk-8u181-linux-x64.tar.gz

  1. 在root权限下, 到/usr目录中新建java文件夹

    [root@localhost usr]# mkdir java

     

  2. 将 jdk-8u181-linux-x64.tar.gz压缩包拷贝到新建的java文件夹中

    [root@localhost java]# cp /root/jdk-8u181-linux-x64.tar.gz  /usr/java

     

  3. 进入到/usr/java文件夹中

    [root@localhost java]# cd /usr/java

     

  4. 解压 jdk-8u181-linux-x64.tar.gz压缩包

    [root@localhost java]# tar -zxvf jdk-8u181-linux-x64.tar.gz -C ./

     

  5. 编辑Linux系统中环境变量所在文件

    [root@localhost java]# vi /etc/profile

     

  6. 在文件最后加入环境变量设置, 加入后保存文件

    export JAVA_HOME=/usr/java/jdk1.8.0_181      #这是自己的jdk所在位置
    export CLASSPATH=.:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin

     

  7. 让环境变量生效

    [root@localhost java]# source /etc/profile

     

  8. 测试JDK是否已经配置好

    #执行命令
    [root@localhost java]# java -version
    #显示如下
    java version "1.8.0_181"
    Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
    #执行命令
    [root@localhost java]# javac -version
    #显示如下
    javac 1.8.0_181

     

十一、docker中安装Gogs

1、 什么是Gogs

Gogs 是一款极易搭建的自助 Git 服务。

Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。

地址:https://gitee.com/Unknown/gogs

2 Gogs安装与配置

2.1 安装

(1)下载镜像

docker pull gogs/gogs

(2)创建容器

docker run -di --name=mygogs -p 10022:22 -p 3000:3000 -v /var/gogsdata:/data gogs/gogs

2.2 配置

假设我的centos虚拟机IP为192.168.47.133 完成以下步骤(1)在地址栏输入http://192.168.47.133:3000 会进入首次运行安装程序页面,我们可以选择一种数据库作为gogs数据的存储,最简单的是选择SQLite3。如果对于规模较大的公司,可以选择MySQL

十二、docker安装Jenkins
  • 1.pull一个jenkins镜像

    docker pull jenkins/jenkins:lts
  • 2.查看已经安装的jenkins镜像

    docker images
  • 3.创建一个jenkins目录

    mkdir /home/jenkins_home
  • 4.启动一个jenkins容器

    docker run -d --name dami_jenkins -p 8081:8080 -v /home/jenkins_01:/home/jenkins_01 jenkins/jenkins:lts 
  • 5.查看jenkins服务

    docker ps | grep jenkins
  • 6.启动服务端 。

    localhost:8081; 
  • 7.进入容器内部

    docker exec -it jenkins_01 bash
  • 8.执行:

    cat /var/jenkins_home/secrets/initialAdminPassword
    本次133机器 e6aa861a28be4f87a2279cb3c7b7475b

    得到密码并粘贴过去

  • 9.输入密码之后,重启docker镜像

    docker restart {CONTAINER ID},安装完毕。 
  •  

免责声明:文章转载自《Docker安装各种服务》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Server-Sent Events入门邮箱测试用例分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Docker】解析器指令之 escape

参考教程:https://docs.docker.com/engine/reference/builder/ 环境 virtual box 6.1 centos 7.8 docker 19.03 escape # escape= (backslash) Or # escape=` (backtick) The escape directive se...

配置定时任务清理多余的镜像和容器文件

k8s集群运行久了,难免会产生大量无用的镜像和容器文件,因此需要经常进行清理。 一般而言,docker容器默认的本地数据存储路径位于/var/lib/docker路径下,通过df -h /var/lib/docker命令,可以查看其占用情况。如果高于80%,则意味着需要清理了。 一、清理命令 与清理容器多余数据相关的命令有两条,分别是: docker im...

Delphi的保存文件对话框-TsaveDialog

TsaveDialog继承于TOpenDialog,只介绍以下几个内容: 1、TsaveDialog如何设定为保存的默认路径是当前程序所在的文件夹: 默认目录是当前程序所在目录应设置属性InitialDir: opendialog1.InitialDir := extractfilepath(application.ExeName); savedial...

Jenkins+pipeline+参数构建+人工干预确定

  Jenkins+pipeline+参数构建+人工干预 实现了以下功能 1. 可以选择环境,单选;可以选择需要发布的项目,多选 2.发布过程可视化 3. 可以人工干预是否继续发布。 初始化配置需要很久,比如拉镜像这些事情,我可以提前操作。配置做好之后,等到下班时间,再进行发布操作。有时候会遇到,我初始化配置做好之后,测试通知还有变动。我可以人工干预,...

ARM 平台下的 SSHD 配置

sshd_config 文件中 允许 root 用户登录 PermitRootLogin yes 配置为内部的 sftp Subsystem sftp internal-sftp key 配置 ssh-keygen -t rsa -f ssh_host_rsa_key -N ""ssh-keygen -t dsa -f ssh_host_dsa_key -...

jenkins基础、手动、自动代码上线

1. jenkins基本介绍与使用 1.1 jenkins介绍 官网 https://jenkins.io Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)基于web界面的平台。 Jenkins是一个工具集,提供了各种各样的插件 比如获取git上最新的代码 比如可以帮你编译源代码 比如可以调用自定义的shell脚本远...