1. 程式人生 > 實用技巧 >Centos7中Docker安裝 portainer、jenkins、svn 、tomcat、mysql、nginx、redis等常用容器

Centos7中Docker安裝 portainer、jenkins、svn 、tomcat、mysql、nginx、redis等常用容器

一、Docker簡介

官網連結:https://www.docker.com

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的映象中,然後釋出到任何流行的Linux或Windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。

映象(Image)和容器(Container)的關係,就像是面向物件程式設計中的類和例項一樣,映象是靜態的定義,容器是映象執行時的實體。Docker 容器通過 Docker 映象來建立。

二、系統要求

本次安裝使用系統為:CentOS 7

三、Docker安裝

1、安裝Docker

Docker安裝 官網教程

https://docs.docker.com/engine/install/centos/

  1. (1).設定儲存庫
  2. 安裝yum-utils軟體包(提供yum-config-manager 實用程式)並設定穩定的儲存庫。
  3. sudo yum install -y yum-utils
  4. sudo yum-config-manager \
  5. --add-repo \
  6. https://download.docker.com/linux/centos/docker-ce.repo
  7. 或者使用阿里雲 源地址
  8. sudo yum-config-manager \
  9. --add-repo \
  10. http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  11. (2).安裝DOCKER引擎
  12. 安裝最新版本的Docker Engine和容器:
  13. sudo yum install docker-ce docker-ce-cli containerd.io

2、檢視Docker版本

  1. docker -v
  2. docker version

3、啟動Docker

systemctl startdocker

4、 檢視Docker狀態

systemctl statusdocker

5、 重啟Docker

sudo systemctl restart docker

6、 停止Docker

sudo systemctl stop docker

7、設定開機自啟

systemctl enable docker

8、列出所有映象

docker images

9、刪除映象

docker rmi IMAGE_ID

10、檢視所有容器

docker ps

11、啟動某個容器

docker start 容器名稱

12、停止某個容器

docker stop 容器名稱

13、退出某個容器

exit

14、刪除某個容器

docker rm 容器id

15、解除安裝舊版docker

  1. sudo yum remove docker \
  2. docker-client \
  3. docker-client-latest \
  4. docker-common \
  5. docker-latest \
  6. docker-latest-logrotate \
  7. docker-logrotate \
  8. docker-engine
  9. 或者使用以下方法
  10. 列出docker安裝過的相關包:
  11. sudo yum list installed | grep docker
  12. 刪除相關安裝包
  13. sudo yum -y remove docker-ce.x86_64
  14. sudo yum -y remove docker-ce-selinux.noarch
  15. 刪除相關的映象與容器
  16. sudo rm -rf /var/lib/docker
  17. sudo yum remove docker docker-common docker-selinux docker-engine

16、docker run引數說明

語法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS說明如下:

  1. -a stdin: 指定標準輸入輸出內容型別,可選 STDIN/STDOUT/STDERR 三項;
  2. -d: 後臺執行容器,並返回容器ID;
  3. -i: 以互動模式執行容器,通常與 -t 同時使用;
  4. -P: 隨機埠對映,容器內部埠隨機對映到主機的埠
  5. -p: 指定埠對映,格式為:主機(宿主)埠:容器埠
  6. -t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
  7. --name="nginx-lb": 為容器指定一個名稱;
  8. --dns 8.8.8.8: 指定容器使用的DNS伺服器,預設和宿主一致;
  9. --dns-search example.com: 指定容器DNS搜尋域名,預設和宿主一致;
  10. -h "mars": 指定容器的hostname;
  11. -e username="ritchie": 設定環境變數;
  12. --env-file=[]: 從指定檔案讀入環境變數;
  13. --cpuset="0-2" or --cpuset="0,1,2": 繫結容器到指定CPU執行;
  14. -m :設定容器使用記憶體最大值;
  15. --net="bridge": 指定容器的網路連線型別,支援 bridge/host/none/container: 四種類型;
  16. --link=[]: 新增連結到另一個容器;
  17. --expose=[]: 開放一個埠或一組埠;
  18. --volume , -v: 繫結一個卷

四、Docker獲取portainer映象,安裝 portainer容器

portainer為docker的視覺化頁面,安裝後可以開啟,進行視覺化操作.

1、搜尋portainer映象

docker search portainer

2、拉取portainer映象

docker pull portainer/portainer:latest

3、安裝並啟動一個portainer容器

docker run -d --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart always --privileged=true portainer/portainer

4、通過瀏覽器輸入http://ip:9000即可訪問portainer,進入視覺化頁面,操作對應的映象(Images)和容器(Containers),如下圖所示:

五、Docker獲取jenkins映象,安裝 jenkins容器

1、搜尋jenkins映象

docker search jenkins

2、拉取jenkins映象

docker pull jenkins/jenkins:lts

3、建立一個jenkins目錄

mkdir /home/jenkins_home

4、啟動一個jenkins容器 並繫結jdk路徑和maven路徑

  1. docker run --name jenkins\
  2. -u root\
  3. -d\
  4. -p 8061:8080\
  5. -p 50000:50000\
  6. -v /usr/bin/docker:/usr/bin/docker:Z \
  7. -v /var/run/docker.sock:/var/run/docker.sock:Z \
  8. -v /etc/sysconfig/docker:/etc/sysconfig/docker:Z \
  9. -v /opt/software/jdk1.8.0_201:/opt/software/jdk1.8.0_201:Z \
  10. -v /opt/software/apache-maven-3.6.3:/opt/software/apache-maven-3.6.3:Z \
  11. -v /opt/software/maven-repo:/opt/software/maven-repo:Z \
  12. -v /home/jenkins_home:/var/jenkins_home:Z \
  13. --restart=always \
  14. --privileged=true \
  15. jenkins/jenkins:lts

5、檢視jenkins服務

docker ps | grep jenkins

6、進入jenkins容器內部

docker exec -it jenkins_01 bash

六、Docker獲取svn映象,安裝 svn容器

1、搜尋svn映象

docker search svn

2、拉取svn映象

docker pull garethflowers/svn-server:latest 

3、建立svn容器

docker run --privileged=true --restart always --name svn -d -v /root/dockers/svn:/var/opt/svn -p 3690:3690 garethflowers/svn-server

4、進入svn容器

docker exec -it svn /bin/sh

5、建立倉庫

  1. [root@local /]# docker exec -it svn /bin/sh
  2. /var/opt/svn # svnadmin create project

6、svn位置

/root/dockers/svn/project

七、Docker獲取tomcat映象,安裝 tomcat容器

1、搜尋tomcat映象

docker search tomcat

2、拉取tomcat映象

docker pull tomcat:7-jre7

3、建立tomcat容器

docker run -di --name jenkins_tomcat -p 9000:8080 -v /usr/local/myhtml:/usr/local/tomcat/webapps --privileged=true tomcat:7-jre7

4、進入tomcat容器

docker exec -it jenkins_tomcat /bin/bash

5 、將tomcat中webapps.dist複製到宿主機/usr/local/myhtml中並改名為webapps.

  1. cd /usr/local/myhtml
  2. docker cp jenkins_tomcat:/usr/local/tomcat/webapps.dist webapps

八、Docker獲取mysql映象,安裝 mysql容器

1、搜尋mysql映象

docker search mysql

2、拉取mysql映象

docker pull mysql:5.7

3、建立mysql容器並指定時區

  1. docker run -d --name mysql57 \
  2. -p 3306:3306 \
  3. -v /home/mysql57/conf:/etc/mysql/mysql.conf.d \
  4. -v /home/mysql57/logs:/logs \
  5. -v /home/mysql57/data:/var/lib/mysql \
  6. -e MYSQL_ROOT_PASSWORD=dzp_dream \
  7. -e TZ=Asia/Shanghai \
  8. --restart always \
  9. mysql:5.7 \
  10. --lower_case_table_names=1 \
  11. --default-time_zone='+8:00'

注: -e TZ=Asia/Shanghai 和 --default-time_zone='+8:00' 設定時區

--lower_case_table_names=1 設定不區分大小寫

4、進入mysql容器

docker exec -it mysql57 /bin/bash

5、進入mysql

mysql -u root -p

九、Docker獲取nginx映象,安裝 nginx容器

1、搜尋nginx映象

docker search nginx

2、拉取nginx映象

docker pull nginx:latest

3、建立nginx容器

  1. docker run -d --name newnginx \
  2. -p 80:80 \
  3. -v /nginx/html:/usr/share/nginx/html:ro \
  4. -v /nginx/conf/conf.d:/etc/nginx/conf.d \
  5. -v /nginx/logs:/var/log/nginx \
  6. nginx

4、進入nginx容器

docker exec -it newnginx /bin/bash

十、Docker獲取redis映象,安裝 redis容器

1、搜尋redis映象

docker search redis

2、拉取redis映象

docker pull redis:latest

3、建立redis容器,並設定密碼

docker run -d --name myredis -p 6379:6379 redis:latest --requirepass "dzp_dream"

4、進入redis容器

docker exec -it myredis /bin/bash

十一、Docker獲取zookeeper映象,安裝 zookeeper容器

1、搜尋zookeeper映象

docker search zookeeper

2、拉取zookeeper映象

docker pull docker.io/wurstmeister/zookeeper

3、建立zookeeper容器

docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper

4、進入zookeeper容器

docker exec -it zookeeper /bin/bash

十二、Docker獲取kafka映象,安裝 kafka 容器

1、搜尋kafka映象

docker search kafka

2、拉取kafka映象

docker pull docker.io/wurstmeister/kafka:2.12-2.1.0

3、建立kafka容器

docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.17.0.5:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.189.130:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka:2.12-2.1.0

4、進入kafka容器

docker exec -it kafka /bin/bash

十三、Docker獲取postgresql+postgis映象,安裝 postgresql+postgis容器

1、搜尋postgresql+postgis映象

docker search postgresql

2、拉取postgresql+postgis映象

docker pull kartoza/postgis:11.0-2.5

3、建立postgresql+postgis容器

docker run -t --name postgresql --restart always  -e POSTGRES_USER='postgres' -e POSTGRES_PASSWORD=dzp_dream -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 -d kartoza/postgis:11.0-2.5

4、進入postgresql+postgis容器

docker exec -it postgresql /bin/bash

十四、Docker獲取MinIO映象,安裝 MinIO容器

1、搜尋MinIO映象

docker search minio

2、拉取MinIO映象

docker pull minio/minio

3、建立MinIO容器

  1. docker run -d -p 9001:9000 --name minio \
  2. -e "MINIO_ACCESS_KEY=minio" \
  3. -e "MINIO_SECRET_KEY=dzp_dream" \
  4. -v /opt/app/cloud/minio/data:/data \
  5. -v /opt/app/cloud/minio/config:/root/.minio \
  6. minio/minio server /data

4、進入MinIO容器

docker exec -it minio /bin/bash

5、安裝MinIO叢集,請參考https://blog.csdn.net/DZP_dream/article/details/110876214

十五、Docker獲取gitlab映象,安裝 gitlab容器

1、搜尋gitlab映象

docker search gitlab

2、拉取gitlab映象

docker pull gitlab/gitlab-ce

3、建立gitlab容器 ( 如果系統開啟SElinux時,需要在對映卷的命令後加上":Z")

  1. docker run -d \
  2. -p 8443:443 \
  3. -p 80:80 \
  4. -p 222:22 \
  5. --name gitlab \
  6. --restart always \
  7. --hostname 192.168.189.130 \
  8. -v /home/gitlab/config:/etc/gitlab:Z \
  9. -v /home/gitlab/logs:/var/log/gitlab:Z \
  10. -v /home/gitlab/data:/var/opt/gitlab:Z \
  11. gitlab/gitlab-ce

4、進入gitlab容器

docker exec -it gitlab /bin/bash

5、訪問gitlab

通過瀏覽器 ip直接訪問,(埠號預設80)

十六、Docker獲取Nacos映象,安裝 Nacos容器

1、搜尋Nacos映象

docker search nacos/nacos-server

2、拉取Nacos映象

docker pull nacos/nacos-server

3、建立Nacos容器

docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server

4、進入Nacos容器

docker exec -it nacos /bin/bash

5、訪問:通過 ip:8848/nacos 訪問,登入密碼預設nacos/nacos

十七、Docker獲取elasticsearch映象,安裝 elasticsearch容器

1、搜尋elasticsearch映象

docker search elasticsearch

2、拉取elasticsearch映象

docker pull elasticsearch

3、建立elasticsearch容器

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 docker.io/elasticsearch

4、進入elasticsearch容器

docker exec -it elasticsearch /bin/bash

5、訪問:通過http://ip:9200/訪問,出現下圖安裝成功

十八、Docker獲取RabbitMQ映象,安裝 RabbitMQ容器

1、搜尋RabbitMQ映象

docker search rabbitmq:management

2、拉取RabbitMQ映象

docker pull rabbitmq:management

3、建立RabbitMQ容器

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 docker.io/rabbitmq:management

4、進入RabbitMQ容器

docker exec -it rabbit /bin/bash

5、訪問:通過http://ip:15672/訪問,出現下圖安裝成功

十九、Docker獲取私有倉庫registry映象,安裝 registry容器

1、搜尋registry映象

docker search registry 

2、拉取registry映象

docker pull registry 

3、建立registry容器

docker run --name=registry -p 5000:5000 -di registry

4、進入registry容器

docker exec -it registry /bin/bash

5、修改配置檔案

 vim /etc/docker/daemon.json

新增如下內容:

  1. {
  2. "insecure-registries":["192.168.1.175:5000"]
  3. }

6、使其生效並重啟docker

  1. sudo systemctl daemon-reload
  2. sudo systemctl restart docker

7、訪問:通過http://ip:5000/v2/_catalog訪問,出現下圖安裝成功

二十、Docker獲取Memcached映象,安裝 Memcached容器

1、搜尋Memcached映象

docker search memcached 

2、拉取Memcached映象

docker pull memcached

3、建立Memcached容器

docker run -d --name mymemcache -p 11211:11211  memcached

4、Memcached相關操作

  1. telnet 127.0.0.1 11211
  2. set test 0 900 9
  3. memcached
  4. STORED
  5. get test
  6. VALUE test 0 9
  7. memcached
  8. END
  9. quit

二十一、Docker獲取MongoDB映象,安裝MongoDB容器

1、搜尋MongoDB映象

docker search mongo

2、拉取MongoDB映象

docker pull mongo:latest

3、建立MongoDB容器

docker run -itd --name mymongo -p 27017:27017 mongo --auth

4、進入MongoDB容器

  1. docker exec -it mymongo mongo admin
  2. # 建立一個名為 admin,密碼為 123456 的使用者。
  3. > db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
  4. # 嘗試使用上面建立的使用者資訊進行連線。
  5. > db.auth('admin', '123456')

二十二、檢視所有的容器

二十三、其他容器安裝

其他容器安裝,與以上步驟大同小異。

敬請批評指正