文档章节

03、使用docker-compose安装软件

A_Ocean
 A_Ocean
发布于 2019/10/08 20:45
字数 863
阅读 33
收藏 0
## 创建docker-compose基础目录
mkdir -p /usr/local/docker

1、安装mysql

mkdir -p /usr/local/docker/mysql
1.1、docker-compose.yml内容
version: '3.1'
services:
  db: 
   image: mysql
   restart: always
   environment:
    MYSQL_ROOT_PASSWORD: root
   command:
    --default-authentication-plugin=mysql_native_password
    --character-set-server=utf8mb4
    --collation-server=utf8mb4_general_ci
    --explicit_defaults_for_timestamp=true
    --lower_case_table_names=1
   ports:
    - 3306:3306
   volumes:
    - ./data:/var/lib/mysql
  adminer:
   image: adminer
   restart: always
   ports:
    - 9999:8080
1.2、创建docker-compose.yml文件
## 在/usr/local/docker/mysql目录创建docker-compose.yml文件并复制粘贴第三部内容到这个文件中
vi /usr/local/docker/mysql/docker-compose.yml

##输入冒号,接着输入 set paste ,再输入i 进入带格式粘贴模式

01

1.3、保存退出
wq!
1.4、运行容器
docker-compose up -d
1.5、销毁容器
docker-compose down

2、安装gitlab

mkdir -p /usr/local/docker/gitlab
2.1、docker-compose.yml内容
version: '3.1'
services:
  web:
    image: 'twang2218/gitlab-ce-zh'
    restart: always
    hostname: '192.168.100.102'
    environment:
      TZ: 'Asia/Shanghai'
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.100.102'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
        unicorn['port'] = 8888
        nginx['listen_port'] = 80
    ports:
      - '80:80'
      - '443:443'
      - '2222:22'
    volumes:
      - ./config:/etc/gitlab
      - ./data:/var/opt/gitlab
      - ./logs:/var/log/gitlab

启动后访问:http://192.168.100.102

3、安装nexus3

mkdir -p /usr/local/docker/nexus
3.1、docker-compose.yml内容
version: '3.1'
services: 
  nexus: 
    restart: always
    image: sonatype/nexus3
    container_name: nexus
    ports:
     - 8081:8081
    volumes:
     - nexus-data:/nexus-data
volumes:
  nexus-data: 

启动后访问:http://192.168.100.102:8081

根据提示找到密码复制出来

3.2、maven使用nexus

在setting.xml配置认证信息,在<servers>节点添加如下配置:

<server>
    <id>releases</id>
    <username>admin</username>
    <password>admin123</password>
</server>
<server>
    <id>snapshots</id>
    <username>admin</username>
    <password>admin123</password>
</server>

在pom.xml添加部署配置

<distributionManagement>
    <repository>
        <id>releases</id>
        <name>Nexus Release Repository</name>
        <url>http://192.168.100.101:8081/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <name>Nexus Snapshot Repository</name>
        <url>http://192.168.100.101:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

在pom.xml设置代理仓库

<repositories>
     <repository>
         <id>nexus</id>
         <name>Nexus Repository</name>
         <url>http://192.168.100.101:8081/repository/maven-public/</url>
         <snapshots>
             <enabled>true</enabled>
         </snapshots>
         <releases>
             <enabled>true</enabled>
         </releases>
     </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>nexus</id>
        <name>Nexus Plugin Repository</name>
        <url>http://192.168.100.101:8081/repository/maven-public/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </pluginRepository>
</pluginRepositories>

配置pom.xml的build信息

<build>
    <finalName>myshop</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.8.2</version>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <!-- 资源文件拷贝插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <!--Java 编译插件-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <!-- 打包时跳过测试 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19</version>
            <configuration>
                <skipTests>true</skipTests>
            </configuration>
        </plugin>
    </plugins>
</build>

4、安装Harbor镜像仓库

4.1、下载安装包:https://github.com/goharbor/harbor/releases

4.2、上传到 /usr/local/docker/目录

4.3、解压 tar -zxvf harbor-offline-installer-v1.9.1-rc1.tgz

4.4、进入到harbor目录修改harbor.yml文件

hostname: 192.168.100.102
http:
  port: 8090
harbor_admin_password: 12345678

4.5、执行 install.sh

./install.sh

启动后访问:http://192.168.100.101:8090 用户名:admin 密码:Harbor12345

4.6、配置客户端

##没有此文件就创建
vim /etc/docker/daemon.json

{
  "registry-mirrors":[
     "https://registry.docker-cn.com"
  ],
  "insecure-registries":[
   "192.168.100.101:8090"
  ]
}
注意:该文件必须符合JSON规范,否则docker将不能启动

4.7、重启服务

systemctl daemon-reload
systemctl restart docker

4.8、检查私服配置

docker info

4.9 、制作镜像提交到harbor仓库

##拉取nginx
docker pull nginx
## 在项目中标记镜像   
## docker tag SOURCE_IMAGE[:TAG] 192.168.100.101:8090/itchao-saas/IMAGE[:TAG]
docker tag nginx:latest 192.168.100.101:8090/itchao-saas/nginx:latest
## 登录
docker login 192.168.100.101:8090 -u admin -p Harbor12345
## 推送镜像到当前项目
## docker push 192.168.100.101:8090/itchao-saas/IMAGE[:TAG]
docker push 192.168.100.101:8090/itchao-saas/nginx:latest

5、docker-compose设置网络

预先创建一个网络

##创建网络
docker network create <Network Name>
##查看已存在的网络
docker network list

在docker-compose.yml中指定网络

networks:
  default:
    external:
      name: myapp

© 著作权归作者所有

A_Ocean
粉丝 14
博文 87
码字总数 44477
作品 0
昌平
程序员
私信 提问
用harbor实现docker registry用于kolla部署openstack

一, 准备docker环境 (一)docker 版本介绍 随着Docker的不断流行与发展,docker公司(或称为组织)也开启了商业化之路,Docker 从 17.03版本之后分为 CE(CommunityEdition)和 EE(Enter...

fW_190
2017/07/03
0
0
CoreOS 安装 docker-compose

因为 CoreOS 中 不可写,安装在该目录中会提示失败。 但是 目录可写,同时也在 path 路径下,那我们就可以这样安装。 然后 docker-compose 就可以正常使用了

Lailysh
2016/05/21
343
0
项目管理:docker-compose一键安装bitnami-redmine项目管理系统

背景: 随着新技术的层出不穷和业务逻辑日趋复杂,昔日的前端和后端也早已相互融合,使得软件开发任务逐渐繁重。与此同时,Git等分布式版本控制系统的出现,使得项目开发从数量上来看参与者愈...

zssureqh
2016/07/03
0
0
ZHENFENGSHISAN/My-Blog

My Blog My Blog是由Docker+SpringBoot+Mybatis+thymeleaf等技术实现的Java博客系统,本来是一个docker和springboot的实战练习项目,目前已经开源,功能齐全、部署简单及完善的代码,一定会给...

ZHENFENGSHISAN
2017/05/15
0
0
在 docker 容器里使用 nginx-proxy 实现自动反向代理及负载均衡

Docker 简介 Docker是一个开放源代码软件项目,让应用程序布署在软件容器下的工作可以自动化进行,借此在Linux操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。...

AttractionToo
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

检查字符串是否不为空且不为空

如何检查字符串是否不为null也不为空? public void doStuff(String str){ if (str != null && str != "**here I want to check the 'str' is empty or not**") { /* handl......

javail
1分钟前
0
0
No module named 'apscheduler.schedulers'

关于 ModuleNotFoundError: No module named 'apscheduler.schedulers' 和 ModuleNotFoundError: No module named 'apscheduler' 的问题,网上有不少解决。大多数都是因为,文件起名与模块名......

開援带碼
23分钟前
15
0
如何查看Android的系统版本?

有谁知道我怎么能检查系统版本(例如1.0 , 2.2 ,等)编程? #1楼 我无法对答案发表评论,但是Kaushik的答案存在一个严重错误:SDK_INT与系统版本不同,但实际上是指API级别。 if(Build.VER...

技术盛宴
48分钟前
35
0
引入AI变量,精准农业正在加速豹变?

  不久前,“江苏省脱贫率达 99.99%,尚未脱贫人数仅剩 6 户、17 人”这样一则新闻刷屏。“把这 17 个人迁出,江苏就全省脱贫”、“最后这 6 户人家拖了后腿”,在网民们的调侃和质疑声背后...

水果黄瓜
52分钟前
41
0
Elasticsearch系列---结构化搜索

概要 结构化搜索针对日期、时间、数字等结构化数据的搜索,它们有自己的格式,我们可以对它们进行范围,比较大小等逻辑操作,这些逻辑操作得到的结果非黑即白,要么符合条件在结果集里,要么...

清茶豆奶
今天
69
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部