Docker安裝各類服務

一. centos7設置固定IPhtml

  1. 查看當前正在使用的網絡狀況java

    [root@localhost ~]# nmcli dev status

    顯示狀況 :node

    DEVICE  TYPE      STATE   CONNECTION 
    ens33   ethernet 鏈接的   ens33      
    lo     loopback 未託管   --  
  2. 修改網絡相關配置文件:mysql

    注意: 下面命令中ifcfg-ens33爲本身當前使用的網絡名稱和上面顯示的ens33對應linux

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

    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. 重啓網絡設置, 讓配置生效:git

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

    [root@localhost ~]# ip addr
  6. 鏈接linux虛擬機等待時間長解決方案:redis

    在使用SecureCRT鏈接Linux時,出現窗口顯示已鏈接,但命令行遲遲不出現的狀況。這個問題確定讓人十分惱火,尤爲在時間緊迫的時候更是讓人忍無可忍.sql

問題緣由:其實問題就出在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

     

11、docker中安裝Gogs

一、 什麼是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

12、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},安裝完畢。 
相關文章
相關標籤/搜索