使用docker搭建gitlab服务器

简单记录Docker的使用和GitLab的搭建



Docker基础篇 没有sudo权限

su -

chmod u+w /etc/sudoers

vi /etc/sudoers

zrk ALL=(ALL) ALL

chmod u-w /etc/sudoers

安装docker sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo sudo yum-config-manager --enable docker-ce-edge sudo yum makecache fast sudo yum install docker-ce sudo service docker start systemctl enable docker 基础命令

查看版本:docker --version

拉取需要的镜像:docker pull 名称(如:redis)

查看本地所有镜像:docker images

查询所有的容器:docker ps -a

停止容器:docker stop 容器名称

删除顺序,先删除容器后删除镜像

docker rm 容器ID

docker rmi 镜像ID

运行一个容器:docker run [参数] 镜像名称

端口映射:-p 本机端口:容器端口

分离模式(在后台运行):-d

名称:--name

在运行的容器中执行命令:docker exec [参数] 容器名称 命令

分离模式:-d

展示容器输入信息STDIN:-i

命令行交互模式:-t

docker安装mysql和配置

sudo mkdir data/mysql/logs data/mysql/conf data/mysql/data -p

sudo docker pull mysql/mysql-server:5.7

docker run -d -p 3306:3306 --name mysql01 mysql/mysql-server

docker exec -it 容器名称 bash

带参数安装mysql

sudo docker run --name mysql-server5.7 --restart always -d -p 3306:3306 -v /home/zrk/data/mysql/data:/var/lib/mysql -v /home/zrk/data/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/zrk/data/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=root123456 -e MYSQL_USER=zrk -e MYSQL_PASSWORD=zrk123456 mysql/mysql-server:5.7 --character-set-server=utf8 --collation-server=utf8_general_ci

修改my.cnf

[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake

mysql修改用户权限

grant all privileges on *.* to 'zrk'@'%' identified by '密码' with grant option; flush privileges; Dockerfile常用命令

FROM 基于另一个镜像进行创建,或者重新创建

MAINTAINER 镜像维护人

RUN 运行命令

COPY 复制

ENTRYPOINT 定义容器入口

CMD 设置容器运行的默认命令和参数

WORKDIR 容器运行的目录

EXPOSE 暴露端口

ENV 设置环境变量

VOLUME 控制如何在宿主中进行存储

制作镜像

使用Vs Code的Docker插件

Ctrl+Shift+P

ADD Docker Files to Workspace

ASP.Net Core(选择应用平台)

Linux(选择Linux容器)

5000(程序监听端口)

修改Dockerfile文件

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env WORKDIR /app # Copy csproj and restore as distinct layers COPY *.csproj ./ RUN dotnet restore # Copy everything else and build COPY . ./ RUN dotnet publish -c Release -o out # Build runtime image FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 WORKDIR /app COPY --from=build-env /app/out . ENTRYPOINT ["dotnet", "DockerDemo.dll"]

docker build -t 制作镜像的名称 .

docker run -d -p 8080:5000 --name 容器名称 -v ${PWD}:/app 镜像名称

制作镜像

docker login 登录

docker push 用户名/镜像名称

如果镜像和用户名不一致,需要修改镜像名称:docker tag 旧名称 用户名/镜像名称

访问网址,可看到发布的镜像:[https://hub.docker.com/]

容器网络

Legacy Linking:使用容器名称进行连接,创建桥连接网络,容器间可以通信

docker run -d -p 8080:5000 --link 容器名称 镜像名称

把容器添加到桥连接网络:可以创建自定义桥连接网络,网络内的容器才能互相通信

创建网络:docker network create --drive bridge 网络名称

加入网络:docker run -d --network=网络名称 --name 网络内的容器名称 镜像名称

查询网络:docker network ls

检查网络:docker network inspectr

连接网络:docker network connect 网络名称 容器名称

删除网络:docker network rm 网络名称

断开连接:docker network disconnect 网络名称 容器名称

Docker Compose

安装

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose build 把docker-compose.yml文件中的所有服务构建成镜像

docker-compose up 启动

docker-compose down 停止、删除,由up命令建立的所有东西

docker-compose logs

docker-compose ps

docker-compose start

docker-compose stop

docker-compose rm

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygxzx.html