Docker命令及软件安装

Docker命令及软件安装

一、Docker简介

Docker的简介及一些说明请自行百度,主要了解虚拟化,镜像,容器等概念。

二、Docker安装

​ Docker官方建议在Ubuntu中安装,因为Docker是基于Ubuntu发布的,而且一般Docker出现的问题Ubuntu是最先更新或者打补丁的。在很多版本中CentOS是不支持更新最新的一些补丁包的的。写本文时三个版本都体验过这里主要以Deepin(Ubuntu的衍生版)。

2.2、Ubuntu中安装

  • 注:如果安装过则可以,/var/lib/docker/保留包括图像,容器,卷和网络在内的内容。
  • 使用apt-get命令安装
1
sudo apt-get install docker.io -y
  • 查看Docker版本
1
sudo docker -v
  • 查看Docker的信息
1
sudo docker info
  • 查看帮助文档
1
sudo docker --help

2.2、CentOS中安装

  • 使用yun命令安装
1
yum install docker -y
  • 查看Docker版本
1
docker -v

注意:centos中查看ip ip addr

2.3、windows中安装

Windows中安装需要注意,Windows版本不同安装包会有所不同,这里介绍使用Windows10系统安装。

三、Docker服务的启动与关闭

这里主要介绍Linux版的Docker服务启动与关闭,如需Windows的请询问度娘,个人认为Windows版Docker还是很少装。本人也体验过Windows版从安装到使用都没用Linux版的好用。

注:systemctl命令是系统服务管理器指令,它是 service 和 chkconfig 两个命令组合

3.1、Docker服务的启动

1
systemctl start docker

3.2、Docker服务的停止

1
systemctl stop docker

3.3、Docker服务的重启

1
systemctl restart docker

3.4、查看Docker服务状态

1
systemctl status docker

3.5、设置Docker开机启动

1
systemctl enable docker

3.6、开放Docker2375端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#编辑docker文件
sudo vim /lib/systemd/system/docker.service

#找到ExecStart=/usr/bin/dockerd
#在ExecStart=/usr/bin/dockerd后追加 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock


#加载Docker守护线程
systemctl daemon-reload
#重启Docker
systemctl restart docker

#查看端口
netstat -tnlp |grep 2375

#进行2375端口(或浏览器访问http://ip:2375/info)
curl 127.0.0.1:2375/info

四、Docker镜像

  • 什么是Docker镜像

​ Docker镜像是由文件系统叠加而成(是一种文件的存储形式)。最底端是一个文件引导系统,即bootfs,这很像典型的Linux/Unix的引导文件系统。Docker用户几乎永远不会和引导系统有什么交互。实际上,当一个容器启动后,它将会被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存供磁盘镜像使用。Docker容器启动是需要的一些文件,而这些文件就可以称为Docker镜像。

4.1、查询镜像

1
sudo docker search mysql

注:

  • NAME:仓库名称
  • DESCRIPTION:镜像描述
  • STARS:用户评价,反应一个镜像的受欢迎程度
  • OFFICIAL:是否官方
  • AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

4.2、获得镜像列表

1
sudo docker images

注:

  • REPOSITORY:镜像所在的仓库名称
  • TAG:镜像标签
  • IMAGE ID:镜像ID
  • CREATE:镜像的创建日期
  • SIZE:镜像大小

注:这些镜像都在Docker宿主机的/var/lib/docker目录下

4.3、拉取镜像

1
2
3
4
#默认latest
sudo docker pull mysql
#指定版本
sudo docker pull mysql:5.7

注:默认在Docker Hub上拉取镜像,在没指定标签时,默认拉取latest版本。

4.4、删除镜像

1
2
3
4
5
6
# 删除指定镜像
sudo docker rmi $IMAGES_ID
sudo docker rmi $REPOSITORY:$TAG

# 删除所有镜像
sudo docker rmi `sudo docker images -q`

4.5、创建镜像

  • 根据已有容器创建
1
sudo docker commit -a "Yongzheng" -m "Ubuntu:16" 4968e97f588d ubuntu:16.6
  • 根据Dockerfile创建

    编写好Dockerfile文件,在同级目录下执行shell语句。

    • 注:

    Dockerfile的编写请参考官网

    1
    2
    3
    4
    #server:v1.0  server为镜像名字   v1.0为TAG(标签)    
    # . 代表DockerFile 与当前目录为同级目录
    sudo docker build -t server:v1.0 .
    sudo docker build -t registry.cn-hangzhou.aliyuncs.com/yongzheng/jenkins:lts .

4.6、镜像的备份与恢复

  • 镜像的备份
1
2
3
4
# sudo docker save -o 宿主机目录/镜像名.tar $IMAGES_ID/$REPOSITORY:$TAG
sudo docker save -o nginx.tar nginx

`
  • 镜像的恢复
1
2
3
4

# sudo docker load -i 宿主机目录/镜像名.tar

sudo docker load -i nginx.tar

五、Docker容器

5.1、查看容器

  • 查看正在运行的容器
1
sudo docker ps
  • 查看所有容器(启动过的历史容器)

1
sudo docker ps -a

  • 查看最后一期运行的容器
1
sudo docker ps -l
  • 查看停止的容器
1
sudo docker ps -f status-exited

5.2、创建与启动容器

  • 守护运行
1
2
sudo docker run -id ubuntu /bin/bash
# 注:运行一个需要长时间运行的容器,也可以理解为后台运行
  • 交互式运行
1
2
sudo docker run -it ubuntu /bin/bash
# 注:退出交互式运行(退出时容器停止) exit

注:

  • -i:表示运行容器
  • -t:表示运行容器并进入终端命令行(交互运行)
  • -d:表示运行容器(后台运行守护运行)
  • -p:表示端口映射,前者是宿主机端口,后者是容器的映射锻课,可以指定多个端口映射。
  • –name:表示为容器命名
  • -v:表示目录映射关系,前者宿主机目录,后者容器目录,可以使用多个目录映射。(最好目录映射,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。如果出现目录没有权限问题,加上--privileged=true

5.3、启动容器

1
sudo docker start $CONTAINER_ID/$NAME

5.4、重新启动容器

1
sudo docker restart $CONTAINER_ID/$NAME

5.5、终止容器

  • 立即终止
1
sudo docker stop $CONTAINER_ID/$NAME
  • 延时终止 (秒)
1
sudo docker stop -t 20  $CONTAINER_ID/$NAME

5.6、删除容器

1
2
3
4
sudo docker rm $CONTAINER_ID/$NAME
-f, --force=false 强制终止并删除一个运行中的容器
-l, --link=false 删除容器的连接,但保留容器
-v, --volumes=false删除容器所挂载的数据卷

5.7、查看容器IP

  • 查看容器运行的各种参数
1
sudo docker inspect $CONTAINER_ID/$NAME
  • 查询容器的IP
1
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $CONTAINER_ID/$NAME

5.8、容器的导入导出

  • 导出容器
1
sudo docker export 4968e97f588d -ubuntu.tar
  • 导入容器
1
cat ubuntu.tar | sudo docker import - yongzheng/ubuntu:v1.0

5.9、进入容器内部

  • attach命令
1
sudo docker attach $CONTAINER_ID/$NAME
  • exec命令
1
sudo docker exec -it $CONTAINER_ID/$NAME /bin/bash

6.0、文件拷贝

  • 将文件拷贝到容器
1
2
sudo docker cp 需要拷贝的文件或目录 容器名称:容器目录
sudo docker cp nginx.conf $CONTAINER_ID/$NAME:/etc/nginx/nginx.conf
  • 从容器拷贝到宿主机
1
2
# sudo docker cp 容器名称:容器文件或目录 需要拷贝的文件或目录
sudo docker cp $CONTAINER_ID/$NAME:/etc/nginx/nginx.conf nginx.conf

六、安装Docker应用

6.1、安装SQL Server

  • 拉取镜像
1
sudo docker pull microsoft/mssql-server-linux
  • 创建容器并运行
1
2
3
4
5
6
7
8
9
10
11
12
13
#端口映射
sudo docker run --name mssql --restart always -id \
-e 'ACCEPT_EULA=Y' -m 512m \
-e 'MSSQL_SA_PASSWORD=YongZheng@1995' \
-v /home/yongzheng/mssql:/var/opt/mssql \
-p 1433:1433 microsoft/mssql-server-linux

# 不使用端口映射直接使用宿主机
sudo docker run --name mssql --net=host --restart always -id \
-e 'ACCEPT_EULA=Y' \
-e 'MSSQL_SA_PASSWORD=YongZheng@1995' \
-v /home/yongzheng/mssql:/var/opt/mssql \
-p 1433:1433 microsoft/mssql-server-linux
  • 注:密码需要复杂密码,要有大小写和特殊符号

6.2、安装jenkins

  • 拉取镜像
1
sudo docker pull jenkins/jenkins:lts
  • 创建容器并运行
1
2
3
sudo docker run --name jenkins --restart always -id \
-v /home/yongzheng/jenkins:/var/jenkins_home \
-p 8888:8080 -p 50000:50000 jenkins/jenkins:lts

6.3、安装Zookeeper

  • 拉取镜像
1
sudo docker pull zookeeper
  • 创建容器并运行

    1
    2
    3
    4
    5
    6
    7
    sudo docker run  --name zookeeper --restart always -id \
    -e ZOO_LOG4J_PROP="INFO,ROLLINGFILE" \
    -e TZ="Asia/Shanghai" \
    -v /home/yongzheng/zookeeper/data:/data \
    -v /home/yongzheng/zookeeper/datalog:/datalog \
    -v /home/yongzheng/zookeeper/logs:/logs \
    -p 2181:2181 zookeeper
  • 注:
    • ZOO_TICK_TIME:ZooKeeper以毫秒为单位。它用于调节心跳和超时(默认2000)
    • ZOO_INIT_LIMIT:(默认5)
    • ZOO_SYNC_LIMIT:(默认2)
    • ZOO_MAX_CLIENT_CNXNS:单个IP的兵法连接数(默认60)
    • ZOO_STANDALONE_ENABLED:(默认flase)
    • ZOO_AUTOPURGE_PURGEINTERVAL:(默认0)
    • ZOO_AUTOPURGE_SNAPRETAINCOUNT:(默认3)3.4.0中的新增功能:启用后,ZooKeeper自动清除功能分别在dataDir和dataLogDir中保留autopurge.snapRetainCount最新快照和相应的事务日志,并删除其余日志。默认为3.最小值为3。

6.4、安装Redis

  • 拉取镜像
1
sudo docker pull redis:3.2.9
  • 创建容器并运行
1
2
3
4
5
6
sudo docker run --name redis --restart=always -id \
-v /home/yongzheng/redis/data:/data \
-e TZ="Asia/Shanghai" \
-p 6379:6379 redis \
--appendonly yes \
--requirepass "yongzheng"
  • 注:
    • redis-server --appendonly yes: 在容器执行redis-server启动命令,并打开redis持久化配置
    • requirepass “your passwd”:设置认证密码
    • –restart=always: 随docker启动而启动
  • 进入容器执行Redis客户端
1
2
3
sudo docker exec -it 容器id或name redis-cli -a 'your passwd'

#sudo docker exec -it a126ec987cfe redis-cli -h 127.0.0.1 -p 6379 -a 'your passwd'
  • 注:
    • -h 127.0.0.1 :默认不加为-h 127.0.0.1
    • -p 6379 :默认不加为 -p 6379

6.5、安装MongoDB

  • 拉取镜像
1
sudo docker pull mongo
  • 创建容器并运行
1
2
3
4
5
6
sudo docker run --name mongo --restart always -id \
-e MONGO_INITDB_ROOT_USERNAME=yongzheng \
-e MONGO_INITDB_ROOT_PASSWORD=yongzheng \
-e MONGO_INITDB_DATABASE=admin \
-v /home/yongzheng/mongo:/date/db \
-p 27017:27017 mongo --storageEngine wiredTiger
  • 注:
    • --storageEngine wiredTiger:指定你需要的储存引擎
    • MONGO_INITDB_ROOT_USERNAME`, `MONGO_INITDB_ROOT_PASSWORD:创建一个新用户并设置该用户的密码
    • MONGO_INITDB_DATABASE:允许您指定要用于创建脚本的数据库的名称
  • 查看MongoDB日志
1
2
sudo docker exec -it some-mongo bash
sudo docker logs some-mongo
  • 设置MongoDB的密码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 进入容器
    sudo docker exec -it mongo /bash/bin
    #选择数据库

    use admin;
    #设置密码

    db.createUser({user: "yongzheng",pwd: "yongzheng",roles: [{role: "userAdminAnyDatabase",db: "admin"}]})

    #验证是否创建成功
    db.auth("yongzheng","yongzheng")

    # 选择数据库
    use test;
    #设置密码
    db.createUser({user:"testuser",pwd:"testpass",roles:["readWrite"]});
    #验证是否创建成功
    db.auth("testuser","testpass")

6.6、安装RabbitMQ

  • 拉取镜像
1
2
sudo docker pull rabbitmq:management  或
sudo docker pull daocloud.io/library/rabbitmq:management
  • 创建容器并运行
1
2
3
4
5
6
7
sudo docker run --name rabbitmq --restart always -id \
-e TZ="Asia/Shanghai" \
-e RABBITMQ_DEFAULT_USER=yongzheng \
-e RABBITMQ_DEFAULT_PASS=yongzheng \
-p 15671:15671 -p 15672:15672 -p 5671:5671 -p 5672:5672 \
-v /home/yongzheng/rabbitmq:/var/lib/rabbitmq \
--hostname rabbitmq rabbitmq:management
  • 注:镜像一定要拉management的,否则无管理界面

6.7、安装KafKa

  • 因为kafka需要借助zookeeper,所以首先要安装zookeeper
  • 拉取镜像

    1
    sudo docker pull wurstmeister/kafka
  • 创建容器并运行

    1
    2
    3
    4
    5
    sudo docker run -id --name kafka --restart always -p 9092:9092 --link zookeeper -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e KAFKA_ADVERTISED_HOST_NAME=192.168.3.244 -e KAFKA_ADVERTISED_PORT=9092 wurstmeister/kafka:latest



    sudo docker run -id --name kafka --restart always -p 9092:9092 --link zookeeper -e KAFKA_BROKER_ID=0 -e KAFKA_ADVERTISED_PORT=9092 -e KAFKA_ADVERTISED_HOST_NAME=192.168.3.244 -e KAFKA_ZOOKEEPER_CONNECT=192.168.3.244:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.244:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka
  • 安装KafKa监控

1
sudo docker run --name kafkamanager --restart always -id -p 9000:9000 --link zookeeper -e ZK_HOSTS="zookeeper:2181" -e APPLICATION_SECRET=letmein sheepkiller/kafka-manager
1
sudo docker run --restart always -id -p 9001:9000 --link zookeeper -e ZKHOSTS="zookeeper:2181" --name="kafka-manager" srangwal/kafkamanager
  • KafKa简单命令行操作

    进入安装kafka安装目录下的bin目录,执行以下shell

    • 创建topic

      1
      ./kafka-topics.sh --zookeeper zookeeper:2181 --create --topic yongzheng --partitions 30  --replication-factor 1
    • 删除topic

      1
      ./kafka-topics.sh --delete --zookeeper zookeeper:2181 --topic yongzheng
    • 查询所有topic list

      1
      ./kafka-topics.sh --list --zookeeper zookeeper:2181
    • 生产者

      1
      ./kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic yongzheng
    • 消费者

      1
      ./kafka-console-consumer.sh --bootstrap-server zookeeper:2181 --from-beginning --topic yongzheng
  • zookeeper中删除topic

    1
    2
    3
    4
    5
    6
    # 进入zookeeper安装的bin目录 启动
    ./zkCli.sh
    # 查看所有topic
    ls /brokers/topics
    # 删除指定的topic
    rmr /brokers/topics/topic-name

6.8、安装MySQL

  • 拉取镜像
1
2
sudo docker pull mysql:5.7  或
sudo docker pull daocloud.io/library/mysql:5.7
  • 创建容器并运行
1
2
3
4
5
6
7
sudo docker run --name mysql --restart always -id \
-e TZ="Asia/Shanghai" \
-e MYSQL_ROOT_PASSWORD=yongzheng \
-e MYSQL_USER=yongzheng \
-e MYSQL_PASSWORD=yongzheng \
-v /home/yongzheng/mysql:/var/lib/mysql \
-p 3306:3306 -id mysql:5.7
  • 注:
    • MYSQL_ROOT_PASSWORD:指定ROOT超级用户的密码
    • MYSQL_DATABASE:指定要在镜像启动时创建的数据库的名称。如果提供了用户/密码,则该用户将被授予对该数据库的超级用户访问权限
    • MYSQL_USER, MYSQL_PASSWORD:创建新用户并设置该用户的密码。此用户将被授予MYSQL_DATABASE变量指定的数据库的超级用户权限
    • MYSQL_ALLOW_EMPTY_PASSWORD=yes:设置为yes允许以root用户的空密码启动容器(不建议操作)
    • MYSQL_RANDOM_ROOT_PASSWORD=yes、:设置yes为root用户生成随机初始密码将打印到stdout(GENERATED ROOT PASSWORD: .....
    • MYSQL_ONETIME_PASSWORDROOT首次登录时强制更改密码,在MySQL5.6+上支持
  • 查看日志
1
2
sudo docker exec -it mysql bash
sudo docker logs mysql

6.9、安装Nginx

  • 拉取镜像
1
sudo docker pull nginx
  • 创建容器并运行
1
2
3
sudo docker run --name=nginx --restart always -di  \
-v /home/ubuntu/nginx:/etc/nginx/conf.d \
--link gitlab -e TZ="Asia/Shanghai" -p 80:80 nginx

注:官方的nginx镜像,nginx配置文件nginx.conf/etc/nginx/目录下

7.0、安装Orcare

  • 拉取镜像
1
2


7.1、安装ActiveMQ

  • 拉取镜像
1
sudo docker pull webcenter/activemq
  • 创建容器并运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
sudo docker run --name activemq -id --restart always \
-e 'ACTIVEMQ_CONFIG_NAME=activemq' \
-e 'ACTIVEMQ_CONFIG_DEFAULTACCOUNT=false' \
-e 'ACTIVEMQ_ADMIN_LOGIN=yongzheng' \
-e 'ACTIVEMQ_ADMIN_PASSWORD=yongzheng' \
-v /home/yongzheng/activemq/data:/data \
-v /home/yongzheng/activemq/datalog:/var/log/activemq \
-p 61616:61616 \
-p 8161:8161 \
webcenter/activemq

sudo docker run --name='activemq' -d \
-e 'ACTIVEMQ_CONFIG_NAME=amqp-srv1' \
-e 'ACTIVEMQ_CONFIG_DEFAULTACCOUNT=false' \
-e 'ACTIVEMQ_ADMIN_LOGIN=yongzheng' -e 'ACTIVEMQ_ADMIN_PASSWORD=yongzheng' \
-e 'ACTIVEMQ_USERS_myproducer=producerpassword' -e 'ACTIVEMQ_GROUPS_writes=myproducer' \
-e 'ACTIVEMQ_USERS_myconsumer=consumerpassword' -e 'ACTIVEMQ_GROUPS_reads=myconsumer' \
-e 'ACTIVEMQ_JMX_user1_role=readwrite' -e 'ACTIVEMQ_JMX_user1_password=jmx_password' \
-e 'ACTIVEMQ_JMX_user2_role=read' -e 'ACTIVEMQ_JMX_user2_password=jmx2_password'
-e 'ACTIVEMQ_CONFIG_TOPICS_topic1=mytopic1' -e 'ACTIVEMQ_CONFIG_TOPICS_topic2=mytopic2' \
-e 'ACTIVEMQ_CONFIG_QUEUES_queue1=myqueue1' -e 'ACTIVEMQ_CONFIG_QUEUES_queue2=myqueue2' \
-e 'ACTIVEMQ_CONFIG_MINMEMORY=1024' -e 'ACTIVEMQ_CONFIG_MAXMEMORY=4096' \
-e 'ACTIVEMQ_CONFIG_SCHEDULERENABLED=true' \
-v /data/activemq:/data \
-v /var/log/activemq:/var/log/activemq \
-p 8161:8161 \
-p 61616:61616 \
-p 61613:61613 \
webcenter/activemq

7.2、安装elasticsearch

  • 拉取镜像

    1
    sudo docker pull elasticsearch
  • 安装容器并运行

    1
    2
    3
    4
    5
    6
    sudo docker run --name elasticsearch --restart always -id \
    -e "discovery.type=single-node" \
    -e ES_JAVA_OPTS="-Xms256m -Xmx256m" \
    -p 9200:9200 \
    -p 9300:9300 \
    elasticsearch:2.4
    • 注:5.0默认分配jvm空间大小为2G /5.0之前好像是1G

    • 注:进入容器运行

    • 1
      /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head

7.3、安装Solr

  • 创建容器并运行

    1
    sudo docker run --name solr -id -p 8983:8983 solr

7.4、安装Tomcat

  • 运行容器
1
2
3
4
5
6
7
8
9
10
11
sudo docker run--name=tomcat --restart always -di \
-p 9000:8080 \
-v /home/yongzheng/tomcat:/usr/local/tomcat/webapps \
--privileged=true tomcat:7-jre7

sudo docker run --name=tomcat --restart always -di \
-v /mnt/docker/tomcat:/usr/local/tomcat/webapps \
-e TZ="Asia/Shanghai" \
--privileged=true \
-p 9000:8080 \
tomcat:7-jre7

7.5、安装FastDFS

  • 拉取镜像

    1
    sudo docker pull morunchang/fastdfs
  • 创建容器并运行

    1
    2
    3
    4
    5
    #创建tracker(跟踪服务器) 
    sudo docker run -d --name fastdfs-tracker --restart always --net=host -v /home/yongzheng/fastdfs/tracker/data:/data/fast_data/data morunchang/fastdfs sh tracker.sh

    #创建storage(存储服务器)
    sudo docker run -d --name fastdfs-storage --restart always --net=host -v /home/yongzheng/fastdfs/storage/data:/data/fast_data -e TRACKER_IP=192.168.3.244:22122 -e GROUP_NAME=yongzheng morunchang/fastdfs sh storage.sh
    • 修改容器的ng(可不修改)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    # 进入容器中
    sudo docker exec -it fastdfs-storage /bin/bash
    #修改nginx的配置文件
    vi /data/nginx/conf/nginx.conf
    #修改nginx的配置,不拦截上传内容
    server {
    listen 8080;
    server_name localhost;

    location /yongzheng/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_yongzheng;
    expires 30d;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }
    }

    #退出容器并重启
    sudo docker restart fastdfs-storage

7.6、安装FastDFS

  • 拉取镜像

    1
    sudo docker pull season/fastdfs
  • 创建容器并运行

    1
    2
    3
    4
    5
    6
    #创建tracker(跟踪服务器) 
    sudo docker run -di -d --name trakcer -v /home/yongzheng/Desktop/fastdfs/tracker_data:/fastdfs/tracker/data --net=host season/fastdfs tracker


    #创建storage(存储服务器)
    sudo docker run -di --name storage -v /home/yongzheng/Desktop/fastdfs/storage_data:/fastdfs/storage/data -v /home/yongzheng/Desktop/fastdfs/storage_data/store_path:/fastdfs/store_path --net=host -e TRACKER_SERVER:192.168.3.244:22122 season/fastdfs storage
    • 修改storage服务器的配置

      1
      2
      3
      4
      5
      6
      7
      8
      #将配置文件从容器复制出来
      sudo docker cp storage:/fdfs_conf/storage.conf /home
      #将配置文件复制到容器中
      sudo docker cp /home/storage.conf storage:/fdfs_conf
      #重启容器
      sudo docker restart storage

      注:将storage.conf中tracker_server的设置为自己的ip(宿主机ip)

7.7、安装RocketMQ

  • 拉取镜像

    拉取一下镜像,在创建时若没有,会先pull镜像,在创建容器

  • 创建容器并运行

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # 创建RocketMQ的server
    sudo docker run -d -p 9876:9876 --name rmqserver foxiswho/rocketmq:server

    # 创建RocketMQ的broker
    sudo docker run -d -p 10911:10911 -p 10909:10909 --name rmqbroker --link rmqserver:namesrv \
    -e "NAMESRV_ADDR=namesrv:9876" \
    -e "JAVA_OPTS=-Duser.home=/opt" \
    -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \
    -v /home/yongzheng/Desktop/docker-rocketmq-master/rmq/rmq/brokerconf/broker.conf:/etc/rocketmq/broker.conf \
    foxiswho/rocketmq:broker

    # 创建图形界面化监控 浏览器访问localhost:8180
    docker run --name rmqconsole -p 8180:8080 --link rmqserver:namesrv -e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -t styletang/rocketmq-console-ng
    • 注:/home/yongzheng/Desktop/docker-rocketmq-master/rmq/rmq/brokerconf/broker.conf为本地配置文件。配置文件下载地址

    • 注: 如果你的微服务或者项目在开发的时候rocketmq容器不能直接用IP访问,
      那么请把broker.conf中的 #brokerIP1=192.168.0.253前面#号去掉,并且把后面的IP地址改成你的rocketmq容器宿主机IP地址,否则报 com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <172.0.0.120:10909> failed

7.8、安装gitLab

  • 拉取镜像

    1
    sudo docker pull gitlab/gitlab-ce:latest
  • 创建容器并运行

    1
    2
    3
    4
    5
    6
    7
    8
    9
     # 安装最新版
    sudo docker run --name gitlab-ce --restart always -id \
    --hostname gitlab.aloneme.com \
    -e TZ="Asia/Shanghai" \
    -p 8443:443 -p 8800:80 -p 2222:22 \
    -v /home/yongzheng/gitlab-ce/config:/etc/gitlab \
    -v /home/yongzheng/gitlab-ce/logs:/var/log/gitlab \
    -v /home/yongzheng/gitlab-ce/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest

7.9、安装H5ai

1
2
3
4
5
> h5ai 是一个轻量,强大,美观的网站目录列表程序。
> 可将服务器文件列表以网页形式呈现在浏览器中。同时可播放视频,查看图片,查看 pdf 等。可以实现半个网盘的功能。
> 本教程将使用 Docker 快速的部署 h5ai ,并绑定域名和开启 https 。
>
>
  • 拉取镜像

    1
     
  • 创建容器并运行

    1
    sudo docker run --restart=always -d -p 8811:80 -v /home/yongzheng/h5ai:/h5ai --name h5ai ilemonrain/h5ai:full

8.0、安装registry私服

  • 拉取镜像

    1
    sudo docker pull registry:2
  • 创建容器并运行

    1
    sudo docker run -d -p 5000:5000 --restart=always --name registry -v /home/yongzheng/registry:/var/lib/registry registry:2

8.1、安装gogs

  • 创建容器并运行
1
sudo docker run --restart=always -di --name=gogs -p 10022:22 -p 3000:3000 -v /var/gogsdata:/data gogs/gogs

8.2、安装influxdb

1
2
3
4
5
6
docker run -di -p 8083:8083 \
-p 8086:8086 \
--expose 8090 \
--expose 8099 \
--name influxsrv \
tutum/influxdb

8.3、安装cadvisor

1
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --detach=true --link influxsrv:influxsrv --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086

8.4、安装Maven私服

1
sudo docker run -id --privileged=true --name=nexus3 --restart=always -p 8081:8081 -v /home/yongzheng/nexus3/nexus-data:/var/nexus-data sonatype/nexus3

8.5、安装Memcached分布式缓存

1
2
#设置容器守护式运行,并且随Docker自动启动
sudo docker run --restart=always --name memcached -d -p 11211:11211 memcached
  • 检测是否安装成功

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #测试是否启动成功
    netstat -luntp|grep 11211
    #或者
    docker ps


    #安装telnet
    #Centos安装
    yum install -y telnet
    #ubuntu安装
    sudo apt-get install -y telnet
    #通过telnet方式连接memcached
    telnet 127.0.0.1 11211
    #设置值,age是key,0是标志位,900是生命周期,8代表所占字节数,回车之后的10是value
    set age 0 900 8
    10
    #获取值
    get age
    #退出telnet
    quit

8.6、安装ZABBIX

1
2
3
4
5
6
7
sudo docker run --name mysql --restart always -id -v /mnt/docker/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=yongzheng -e MYSQL_PASSWORD=yongzheng -p 3306:3306 -id mysql:5.7


docker run --name zabbix-server -e DB_SERVER_HOST="mysql" -e MYSQL_USER="yongzheng" -e MYSQL_PASSWORD="yongzheng" -e MYSQL_DATABASE='zabbix' --link mysql:mysql -p 10051:10051 -d zabbix/zabbix-server-mysql:latest


docker run --name zabbix-web-nginx --link zabbix-server:zabbix-server --link mysql:mysql -e DB_SERVER_HOST="mysql" -e MYSQL_USER="yongzheng" -e MYSQL_PASSWORD="yongzheng" -e ZBX_SERVER_HOST="zabbix-server" -d -p 8020:80 zabbix/zabbix-web-nginx-mysql

8.7、安装禅道

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#专业版  企业版
docker run -d -p 80:80 -p 3306:3306 \
-e TZ="Asia/Shanghai" \
-e USER="yongzheng" -e PASSWD="yongzheng" \
-e BIND_ADDRESS="false" \
--name zentao-server \
idoop/zentao:pro


#开源版
docker run -d -p 8020:80 -p 3307:3306 \
-e TZ="Asia/Shanghai" \
-e ADMINER_USER="root" -e ADMINER_PASSWD="xrkj123456" \
-e BIND_ADDRESS="false" \
-v /mnt/docker/zentao/:/opt/zbox/ \
--add-host smtp.exmail.qq.com:163.177.90.125 \
--name zentao-server \
idoop/zentao:latest
-------------本文结束感谢您的阅读-------------