# Docker_Ubuntu **Repository Path**: linux-git/Docker_Ubuntu ## Basic Information - **Project Name**: Docker_Ubuntu - **Description**: Ubuntu安装Docker、Portainer、GitLab CI/CD - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-01-10 - **Last Updated**: 2022-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Docker的安装配置与应用 > # 目录 > > * [1. 安装前准备(*Ubuntu*)](#1) > * [1.1 乱码处理](#1-1) > * [1.2 设置root密码及sftp](#1-2) > * [1.3 apt换源](#1-3) > > * [2. 安装配置*Docker*](#2) > * [2.1 安装Docker](#2-1) > * [2.2 配置Swarm](#2-2) > * [2.3 安装Portainer](#2-3) > > * [3. 安装配置*GitLab*](#3) > * [3.1 安装GitLab](#3-1) > * [3.2 配置GitLab](#3-2) > > * [4. 安装配置*Registry*](#4) > * [4.1 安装Registry](#4-1) > * [4.2 配置Registry](#4-2) > > * [5. 安装配置*IDEA*](#5) > * [5.1 安装IDEA](#5-1) > * [5.2 配置IDEA编译java](#5-2) > > * [6. 配置jar通过GitLab CI生成镜像](#6) > * [6.1 配置CI](#6-1) > 本教程基于**Ubuntu 16.04.7** 使用镜像ubuntu-16.04.7-server-amd64.iso默认步骤安装 | 端口 | 应用 | | :-: | :-: | | 9000 | Portainer | | 31000 | GitLab Web | | 31001 | GitLab 22 | | 31002 | GitLab 443 |

1. 安装前准备(*Ubuntu*)

1.1 乱码处理

> [参考链接](https://blog.csdn.net/u013699869/article/details/52614400 "点击打开") ```` sudo vim /etc/default/locale #将内容改为: LANG="en_US.UTF-8" LANGUAGE="en_US:en" ```` [返回目录](#home)

1.2 设置root密码及sftp

> [参考链接](http://i.lckiss.com/?p=4762 "点击打开") ```` #改 root 密码 sudo passwd root #编辑配置文件(修改 PermitRootLogin yes) sudo vi /etc/ssh/sshd_config #重启服务 sudo systemctl restart ssh ```` [返回目录](#home)

1.3 apt换源

> [参考链接](https://blog.csdn.net/u012308586/article/details/102953882 "点击打开") ```` #备份原文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak #修改配置文件 sudo vim /etc/apt/sources.list 删除100行 100 dd #写入模式 i #粘贴以下内容 deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #保存修改 :wq ```` [返回目录](#home)

2. 安装配置*Docker*

2.1 安装Docker

> [阿里云官方镜像站](https://developer.aliyun.com/mirror/ "点击打开") > > [Docker CE 镜像](https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.3e221b113eVagK "点击打开") ```` Ubuntu 14.04/16.04(使用 apt-get 进行安装) # step 1: 安装必要的一些系统工具 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common # step 2: 安装GPG证书 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # Step 3: 写入软件源信息 sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # Step 4: 更新并安装Docker-CE sudo apt-get -y update sudo apt-get -y install docker-ce ```` [返回目录](#home)

2.2 配置Swarm

```` #初始化swarm docker swarm init ```` [返回目录](#home)

2.3 安装Portainer

> [Docker Swarm](https://documentation.portainer.io/v2.0/deploy/ceinstallswarm/ "点击打开") ```` curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml docker stack deploy -c portainer-agent-stack.yml portainer ```` 使用ip:9000访问portainer [返回目录](#home)

3. 安装配置*GitLab*

3.1 安装GitLab

> [参考链接](https://docs.gitlab.com/omnibus/docker/README.html#troubleshooting "点击打开") ```` #拉取镜像(当前版本镜像2.2G,若通过Portainer下载时间较久切无法查看进度,推荐使用命令下载) sudo docker pull gitlab/gitlab-ce #Ubuntu中建目录(可自定) sudo mkdir -p /srv/gitlab/data sudo mkdir -p /srv/gitlab/logs sudo mkdir -p /srv/gitlab/config #使用docker-compose安装 cd && mkdir gitlab && cd gitlab vim gitlab.rb #写入如下 external_url 'https://my.domain.com/' gitlab_rails['initial_root_password'] = File.read('/run/secrets/gitlab_root_password') vim root_password.txt #写入如下 MySuperSecretAndSecurePass0rd! vim docker-compose.yml #写入如下 version: "3.6" services: gitlab: image: gitlab/gitlab-ce:latest ports: - "31000:80" - "31001:22" - "31002:443" volumes: - /srv/gitlab/data:/var/opt/gitlab - /srv/gitlab/logs:/var/log/gitlab - /srv/gitlab/config:/etc/gitlab environment: GITLAB_OMNIBUS_CONFIG: "from_file('/omnibus_config.rb')" configs: - source: gitlab target: /omnibus_config.rb secrets: - gitlab_root_password gitlab-runner: image: gitlab/gitlab-runner:alpine deploy: mode: replicated replicas: 4 configs: gitlab: file: ./gitlab.rb secrets: gitlab_root_password: file: ./root_password.txt #新建stack sudo docker stack deploy --compose-file docker-compose.yml gitlab #等待5分钟左右容器启动完成 ```` 修改GitLab root密码 > [参考链接](https://www.cnblogs.com/lvchaoshun/p/13285033.html "点击打开") ```` #Portainer进入gitlab容器控制台 #1.使用以下命令启动Ruby on Rails控制台 gitlab-rails console -e production #2.选择root user = User.where(id: 1).first #3.修改密码 user.password = 'secret_pass' user.password_confirmation = 'secret_pass' #4.保存 user.save! ```` [返回目录](#home)

3.2 配置GitLab

> [参考链接](https://docs.gitlab.com/ "点击打开") ### 3.2.1 修改语言 1.登录进GitLab 2.点击右上角头像 3.点击Preferences 4.拉到最底下选择语言 5.刷新页面 [返回目录](#home)

4. 安装配置*Registry*

4.1 安装Registry

> [参考链接](https://docs.docker.com/registry/deploying/ "点击打开") > > [参考链接](https://docs.docker.com/registry/deploying/#deploy-your-registry-using-a-compose-file "点击打开") > > [参考链接](https://www.cnblogs.com/edisonchou/p/docker_registry_repository_setup_introduction.html "点击打开") > > [参考链接](https://www.cnblogs.com/zhaojiankai/p/7813969.html "点击打开") ```` #下载镜像(当前版本26.2M,无须提前下载) sudo docker pull registry:latest #新建相应目录 sudo mkdir -p /dockeruse/registry/data sudo mkdir -p /dockeruse/registry/certs sudo mkdir -p /dockeruse/registry/auth #生成证书 sudo openssl req -newkey rsa:4096 -nodes -sha256 -keyout /dockeruse/registry/certs/domain.key -x509 -days 365 -out /dockeruse/registry/certs/domain.crt #在docker中创建 sudo docker secret create registry_domain.crt certs/domain.crt sudo docker secret create registry_domain.key certs/domain.key #新建stack,粘贴以下 version: "3" services: registry: restart: always image: registry:latest ports: - 32000:5000 environment: REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt REGISTRY_HTTP_TLS_KEY: /certs/domain.key #REGISTRY_AUTH: htpasswd #REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd #REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm volumes: - /dockeruse/registry/data:/var/lib/registry - /dockeruse/registry/certs:/certs - /dockeruse/registry/auth:/auth #启动,通过https://ip:32000/v2/_catalog访问 #响应{"repositories":[]} ```` [返回目录](#home)

4.2 配置Registry

> [参考链接](https:// "点击打开") [返回目录](#home)

5. 安装配置*IDEA*

5.1 安装IDEA

> [参考链接](https:// "点击打开") [返回目录](#home)

5.2 配置IDEA编译java

> [参考链接](https:// "点击打开") [返回目录](#home)

6. 配置jar通过GitLab CI生成镜像

6.1 安装CI

> [参考链接](https:// "点击打开") [返回目录](#home)