docker从安装入门到应用部署及私有仓库搭建基础命令

目录
  • 入门到精通
  • 方法一
  • 方法二
  • 开启关闭
  • 查找镜像
  • 镜像操作
  • 容器操作
  • 文件拷贝
  • 目录映射(数据卷)
  • 查看容器信息
  • docker应用部署
  • 容器打包成镜像
  • 总结
  • docker file常用命令
  • eg:基于python3.6构建docker file镜像
  • 容器部署项目,用 nuginx做负载均衡

Docker

入门到精通

ssh root@39.101.184.220
"""
1)docker就是Linux上及其轻量的虚拟机

2)虚拟机是存在宿主系统中,通过镜像给宿主系统拓展子系统的(一个镜像理论上可以做n个子系统)

3)两个特别重要的概念
	image:镜像
	container:容器(子系统)

4)工作方式:
	i)在服务器系统下载docker(为服务器安装虚拟机,服务器系统就是宿主系统)
	ii)用docker去下载对应需求的镜像:镜像操作
	iii)通过镜像制造容器(装子系统):容器操作

5)优势
	i)超级轻量级,docker安装的容器体积可以按kB度量
	ii)集群部署,docker可以通过一个镜像制造出多个一模一样的容器
	iii)便捷管理所有镜像与容器(命令行操作)

6)镜像和容器特点
	一般一个镜像中只包含一种软件:比如mysql镜像,创建的容器中只有mysql环境;redis镜像,创建的容器中只有redis环境
	注:一个镜像中有多个环境的需要自己制作镜像
"""

docker-ce : 免费(使用最多)
docker-ee :收费

CentOS安装Docker

方法一

设置管理Docker的仓库

"""
1)安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2)安装稳定仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
"""

安装Docker Engine-Community

"""
1)安装
>: yum install docker-ce docker-ce-cli containerd.io

2)如果提示您接受 GPG 密钥,请允许
"""

方法二

"""
# centos7 安装docker
1 安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2 设置yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3 安装
sudo yum install docker-ce -y
"""

docker 版本:装的最新版
docker -v
Docker version 19.03.8, build afacb8b
docker -v查看版本,如果是17年之前的,就是老版本,操作习惯不一样

Docker基础命令

开启关闭

"""
1)启动
>: service docker start  |  systemctl start docker

2)关闭
>: service docker stop  |  systemctl stop docker

3)重启
>: service docker restart  |  systemctl restart docker
"""

查找镜像

# 查找镜像:https://hub.docker.com/
docker search helloworld
docker search centos

# 拉取镜像
docker pull centos     # 拉取最新的:相当于docker pull centos:latest
docker pull centos:centos7  # 拉取一个centos7
docker pull centos:centos6.7
docker pull centos:centos10 # 这个 没有,就报错

镜像操作

"""
1)列出镜像
>: docker image ls

2)拉取镜像
>: docker [image] pull 镜像名:版本
eg: docker image pull hello-world:latest    # 最后一个版本

3)删除镜像
如果有容器了,可以强制删除镜像。不推荐这么做
>: docker image rm 镜像ID
>: docker image rm 镜像名字:镜像版本  # 通过名字删除
docker image rm centos:centos7

4)将容器反向打包镜像
>: docker save -o <文件名.tar>  <镜像名>

5)根据打包的镜像文件加载镜像
>: docker load -i <文件名.tar>
"""

容器操作

"""
docker exec --help      # 查看参数的含义

1)创建容器
>: docker run [选项参数] 镜像名 [命令]
创建容器命令:docker run
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。容器名字不能重
-v:表示目录映射关系(前者是宿主机目录,后者是容器的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

# 演示
#基于哪个镜像跑容器:centos:centos7   如果写成centos表示跑最新的
#如果没有这个镜像呢?去远程拉,拉下来再跑,远程没有就报错

# 1.容器要运行(跑完进入了容器)
docker run -it --name=mycentos7 centos:centos7 /bin/bash
/bin/bash:进入容器,并开一个终端

bash:进入内层终端
exit: 退出一层

 # 2.以守护进程形式跑(跑完没有进入容器)
docker run -di  --name=mycentos2_2 centos:centos7

2)查看所有容器:-a就是--all代表全部展示
>: docker container ls [-a]
>: docker ps [-a]

3) 容器的启动与停止
docker stop 容器id/名字
docker start 容器id/名字
docker restart 容器id/名字

4)kill掉一个已经在运行的容器
>: docker kill 容器id

5)删除容器
停止后才能删除
>: docker  rm 容器id

6)进入容器
	1.exec(使用最多)
	2.attach
	3.ssh连接(容器要启动ssh服务22端口没有服务在监听)
>: docker  exec 参数 容器id bash
eg: docker exec -it mycentos7 bash
eg: docker exec -it 685e1 bash
eg: docker exec mycentos2_2 ls  # 在mycentos2_2的容器中执行ls,并打印结果
7)退出容器
>: exit
"""

文件拷贝

# 文件拷贝
# 从宿主机copy到容器内部
docker cp untitled3.tar mycentos2_2:/home
 # 从容器内部copy出来
docker cp mycentos2_2:/home/untitled3.tar ./

目录映射(数据卷)

# 映射之后,操作宿主机目录和操作容器目录会相互影响

docker run -di  --name=mycentos2_3 -v /root/test:/home centos:centos7
					  名字     宿主机/root/test映射到容器 /home   版本

查看容器信息

docker inspect 容器名字/容器id
# 查看ip地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器id/名字

docker应用部署

# mysql服务 在docker中运行 -e表示环境变量,root密码
docker run -id --name=mysql1 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# redis服务 在docker中运行
docker run -id --name=myredis -p 6379:6379 redis

# docker中部署django项目 nginx + django +uwsgi

容器打包成镜像

# 把容器打包成镜像
docker run -di --name=mydjango python:3.6

# 安装django环境
pip install django==1.11.9
apt-get update
apt-get install vim 

# 把容器打包成镜像
docker commit 容器名字 镜像名字
docker commit mydjango mydjango_i

# 基于镜像再跑起容器
docker run -di --name=mydjango2 mydjango_i

# 镜像打成一个tar包,压缩一下(在当前目有个mydjango.tar)
docker  save -o 压缩包名字.tar mydjango_i

# copy这个压缩包到任意的机器上(装了docker)
# 把压缩包,恢复成镜像
docker load -i 压缩包名字.tar

容器里装了python3.6 mysql,django, uwsgi ,redis 项目在里面---》镜像--》容器

10个容器
django+uwsgi    mysql   redis    一个一个起:docker-compose
100台机器,10w容器 k8s

总结

# 容器的操作
查看正在运行的容器:docker ps
查看所有容器:docker ps -a
删除容器:docker rm 容器id/名字 容器id/名字  支持同时删多个
容器启动停止: docker stop/start/restart 容器名字/id
创建并启动容器:docker run -i -d -t --name=名字 -v 目录映射/数据卷 -p 端口映射/网络 镜像名字:tag
 	-镜像如果没有,会自动去拉取,然后启动
查看容器日志:docker logs 容器id/名字
文件拷贝: docker cp
查看容器信息,ip:docker inspect 容器名称(容器ID)
进入容器:docker exec -it 容器id /bin/bash
docker exec 容器id ls
ssh
attach

Docker file编写

Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像,用来构建镜像的
# docker pull
# 通过容器---》打包成镜像--》压缩--》拿到任何位置
# 通过Dockerfile构建镜像
1、对于开发人员:可以为开发团队提供一个完全一致的开发环境;
2、对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了;
3、对于运维人员:在部署时,可以实现应用的无缝移植。

docker file常用命令

命令	作用
FROM image_name:tag	定义了使用哪个基础镜像启动构建流程  # FROM 镜像名:版本
MAINTAINER user_name	声明镜像的创建者
ENV key value	设置环境变量 (可以写多条)
(核心)RUN command	是Dockerfile的核心部分(可以写多条)
    eg:写要执行的命令(centos上装一个python3.6,原来在linux上装python,如何操作,就用命令一行一行写出来)
        RUN wget http://www..../python.tar.gz
        RUN tar -cvf python.tar.gz
        RUN cd python
        RUN make && make install
        RUN pip3 install django==1.11.9
ADD source_dir/file dest_dir/file	将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY source_dir/file dest_dir/file	和ADD相似,但是如果有压缩文件并不能解压
WORKDIR path_dir	设置工作目录(上面操作的命令都是在这个目录,docker exec 进去,就在当前设置的路径下,之前是在根路径下)
CMD [命令]    容器一运行,就会执行命令
# ADD和COPY的区别?一个会解压,一个默认不会解压

eg:基于python3.6构建docker file镜像

# 写一个Dockerfile,基于python3.6 搭建运行环境:django,drf,uwsgi
# 名字必须交 Dockerfile ,当你构建的时候,会在当前路径下找这个文件,自动构建
vim Dockerfile

FROM python:3.6
MAINTAINER lqz
ADD ./django_test.tar /home
RUN pip install -r /home/django_test/requirement.txt -i https://pypi.doubanio.com/simple
CMD ["/bin/bash"]

# 基于docker file构建
docker build -t='django1.11.9'   # django1.11.9就是构建完之后的镜像名字
构建完之后就有一个django1.11.9的镜像
# 基于该镜像构建容器
docker run -di --name=myproject -p 8080:8080 django1.11.9

# docker logs myproject   查看报错信息

容器部署项目,用 nuginx做负载均衡

# 1 在项目路径下写Dockerfile
FROM python:3.6
MAINTAINER lqz
ADD ./requirement.txt /home/
RUN pip install -r /home/requirement.txt -i https://pypi.douban.com/simple/
WORKDIR /home/django_test
EXPOSE 8080
VOLUME ["/home"]
CMD ["uwsgi", "--ini", "/home/django_test/uwsgi.ini"]

# 2 在项目路径下写一个uwsgi.ini

[uwsgi]
#也可以使用http
http=0.0.0.0:8080
#配置项目路径,项目的所在目录
chdir=/home/django_test
#配置wsgi接口模块文件路径
wsgi-file=django_test/wsgi.py
#配置启动的进程数
processes=4
#配置每个进程的线程数
threads=2
#配置启动管理主进程
master=True
#配置存放主进程的进程号文件
pidfile=uwsgi.pid

# 3 传到git上(我们直接复制过去了)

在服务器从git上拉下来,解压开
# 4 基于docker file构建镜像
docker build -t='django1.11.9' .

#5  运行起django+uwsgi的容器
docker run -di --name=mydjango1 -v /home/s13/myproject:/home -p 8080:8080 django1.11.9
docker run -di --name=mydjango2 -v /home/s13/myproject2:/home -p 8088:8080 django1.11.9 

# 6 基于ngixn镜像跑起一个容器来,做目录映射(在宿主机,修改nginx的配置文件)
# 创建几个文件夹
mkdir -p /home/nginx/conf /home/nginx/html /home/nginx/logs
vim /home/nginx/conf/nginx.conf
#写入
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
  	upstream	node	{  # node名字随便取,下面需要用到
			server	101.133.225.166:8080;  # 1号服务器
			server	101.133.225.166:8088;  # 2号服务器
		}
    server {
        listen       80;
        server_name  localhost;
        location / {
          #负载均衡配置
          proxy_pass http://node;  # 负载均衡,随机分发请求
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

docker run --name nginx -id -p 80:80 -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/html:/etc/nginx/html -v /home/nginx/logs:/var/log/nginx nginx

#7  访问http://101.133.225.166/, 会打到不通的docker容器内,即便有一个服务停了,也不会影响项目的运行

# 因为你django docker容器做了目录映射---》只需要修改代码,重启容器即可(git pull 即可)
# 不停服更新,停一半,更新,启动--在把另一半更新了
# 停服更新

Docker私有仓库搭建

# 镜像获取:
docker pull
dockerfile构建
拷贝tar文件,load过来

# 公司内部用的镜像,docker hub上没有,私服(私有服务器)

# 操作步骤
# 1 拉一个registry镜像  (本质是个什么?web服务(想像成 web项目在里面))
docker pull registry
# 2 跑起容器来
docker run -di --name=registry -p 5000:5000 registry
# 3 浏览器输入地址(目前是空的)
http://宿主机:5000/v2/_catalog

# 4 vi /etc/docker/daemon.json (文件如果没有就创建出来),以后docker pull 先从自己配置的这个拉,再去远程拉
{"insecure-registries":["10.0.0.200:5000"]}   # 宿主机地址

# 5 重启docker 服务
systemctl restart docker

# 6 启动容器
docker restart registry

# 7 标记本地的镜像(可能是dockerfile构建的,也可能是通过容器打包成的)
docker tag django1.11.9 101.133.225.166:5000/django1.11.9
# docker tag redis 101.133.225.166:5000/myredis

# 8 把标记好的本地镜像,传到私服
docker push 101.133.225.166:5000/django1.11.9
#docker push 101.133.225.166:5000/myredis

# 9 再访问这个地址http://宿主机:5000/v2/_catalog
就能看到你上次的镜像再里面了

# 10 只要在etc/docker/daemon.json,配置了这个{"insecure-registries":["101.133.225.166:5000"]} 的所有小伙伴,都可以拉取我上传的镜像

docker pull 101.133.225.166:5000/myredis

# 公司可能没有私服,直接通过dockerfile构建
# 大一点的公司,搭建私有仓库,里面放了一些镜像(不让你去docker hub下了,直接只从私有仓库下载)

Docker安装Mysql

"""
1)安装
>: docker image pull mysql:5.7
>: 如果报错m1安装:docker pull --platform linux/x86_64 mysql

2)创建容器:root根用户的密码MYSQL_ROOT_PASSWORD采用的是root
>: docker container run -itd -p3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

docker run -id --name=mysql3308 -p3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

注:本地测试
>: mysql -hIP -P端口 -uroot -p密码

>: mysql -h 39.99.192.127 -P 3306 -u root -p
>: root
>: create database luffy default charset=utf8;
>: grant all privileges on luffy.* to 'luffy'@'%' identified by 'Luffy123?';
>: grant all privileges on luffy.* to 'luffy'@'localhost' identified by 'Luffy123?';
>: flush privileges;
"""

docker内部mysql允许外部访问

M1拉镜像:docker pull --platform linux/x86_64 mysql

先进入到mysql容器内部,并登陆mysql -uroot -p
use mysql;

update user set authentication_string = password('123456') where user = 'root';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '123456' WITH GRANT OPTION;

用户名:root
密码:123456

Docker安装Redis

"""
1)下载镜像
>: docker pull redis:4.0.9

2)创建容器
>: docker container run -itd -p6379:6379 redis:4.0.9
   ## : -p宿主端口(服务器):容器端口(通过镜像安装的)

3)进入容器
>: docker container exec -it <容器名称/容器ID> bash
eg: docker exec -it 685e1 bash

4)测试
>: redis-cli

>: redis-cli -h 39.99.192.127 -p 6379
>: config set requirepass Admin123
"""

以上就是docker从安装入门到应用部署及私有仓库搭建基础命令的详细内容,更多关于docker安装应用部署私有仓库搭建命令的资料请关注我们其它相关文章!

(0)

相关推荐

  • Ubuntu Docker 的安装部署及简单应用

    Docker直译为码头工人.当它成为一种技术时,做的也是码头工人的事.官网是这样描述它的:"Docker是一个开发的平台,用来为开发者和系统管理员构建.发布和运行分布式应用."也就是说,如果把你的应用比喻为货物,那么码头工人(Docker)就会迅速的用集装箱将它们装上船.快速.简单而有效率. 它是用Go语言写的,是程序运行的"容器"(Linux containers),实现了应用级别的隔离(沙箱).多个容器运行时互补影响,安全而稳定. 我喜欢它的原因就是快速部署,安

  • docker安装部署 onlyoffice的详细过程

    0. 系统要求 中央处理器 I5-10400F以上 内存 16 GB,最佳32G内存 硬盘 至少40 GB的可用空间 1:安装Docker Desktop 2:进入BIOS设置CPU的虚拟化 https://jingyan.baidu.com/article/ab0b56305f2882c15afa7dda.html 3:启动Docker desktop 报错解决:https://www.jb51.net/article/214820.htm 3:cmd进入,使用命令安装onlyoffice 安

  • 详解CentOS 7 : Docker私有仓库搭建和使用

    系统环境: CentOS 7.2 192.168.0.179:Docker仓库 192.168.0.60:客户端 安装并启动docker yum -y install docker systemctl start docker systemctl enable docker 搭建私有仓库 179上下载registry镜像 docker pull registry 防火墙添加运行5000端口 iptables -I INPUT 1 -p tcp --dport 5000 -j ACCEPT 下载完

  • Docker CentOS7的系统上安装部署以及基础教程

    说明: 本文介绍如何在CentOS7的系统上安装部署Docker环境,本文参考Docker官方文档如下链接: https://docs.docker.com/engine/installation/centos/ CentOS7的系统上安装部署Docker环境 1 CentOS7安装(略) 2 升级系统 yum update 升级完成后需要重启下系统. 3 添加docker yum源 执行如下命令: cat >/etc/yum.repos.d/docker.repo name=Docker Re

  • 详解docker私有仓库搭建与使用实战

    hub.docker.com上可以保存镜像,但是网速相对较慢,在内部环境中搭建一个私有的公共仓库是个更好的方案,今天我们就来实战搭建私有docker仓库吧: 环境规划 需要两台机器:docker私服仓库的server和使用docker的普通机器,这两个机器都是ubuntu16版本的server,ip信息如下: 机器名 ip 功能 docker-registry 192.168.119.148 docker私有仓库服务器 docker-app 192.168.119.155 运行docker服务的

  • Docker Registry 私有仓库搭建详细步骤

    Docker  Registry 私有仓库搭建 官方已经提供了很多版本的 Linux 镜像,直接从官方仓库(Public Repositories)下载就可以了.如果考虑到安全性和速度,我们可能会想在自己局域网里架设一个私有仓库(Private Repositories)来放我们自己的镜像,Docker-Registry 正是我们需要的工具. 本次搭建 docker-registry server (dev) (v0.9.0) 添加docker用户和目录 为了安全起见,我们可以添加一个用户doc

  • docker从安装入门到应用部署及私有仓库搭建基础命令

    目录 入门到精通 方法一 方法二 开启关闭 查找镜像 镜像操作 容器操作 文件拷贝 目录映射(数据卷) 查看容器信息 docker应用部署 容器打包成镜像 总结 docker file常用命令 eg:基于python3.6构建docker file镜像 容器部署项目,用 nuginx做负载均衡 Docker 入门到精通 ssh root@39.101.184.220 """ 1)docker就是Linux上及其轻量的虚拟机 2)虚拟机是存在宿主系统中,通过镜像给宿主系统拓展子

  • docker容器安装及部署的超详细入门教程

    目录 1.安装docker 2.docker 安装 redis 3.docker 安装rabbitmq 4.docker 安装postgresql 5.docker 安装jdk 并配置环境变量 6.停止和删除容器 7.Docker部署SpringBoot项目 总结 1.安装docker (1)卸载以前安装的Docker容器 sudo yum remove docker \ docker-client \ docker-client-latest \docker-common \docker-la

  • Docker简单安装与应用入门教程

    本文实例讲述了Docker简单安装与应用.分享给大家供大家参考,具体如下: 作为一个初次接触Docker的人来说,最大的问题是Docker是什么?Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.比如,我们在笔记本上编译测试通过的容器可以批量地在生产环境中部署,可以用于自动化测试和持续集成.发布. 还可以用于web应用的自动化打包和发布:在服务型环境中部署和调整数据库或其他的后台应用:从头编译或者扩展现有的OpenShift或Cloud Foundry

  • 简述Docker安装Tomcat镜像并部署web项目

    一.安装Tomcat 1.查找Docker Hub上的tomcat镜像 docker search tomcat 2.拉取官方的镜像 docker pull tomcat 等待下载完毕,需要一些时间. 3.查看docker所有的镜像 docker images 4.启动tomcat镜像 注:前者是外围访问端口:后者是容器内部端口 docker run -d -p 8080:8080 tomcat 注:前者是外围访问端口:后者是容器内部端口 如下命令可后台启动tomcat -d: 后台运行容器,并

  • Docker安装部署单机版Rocket及基础讲解

    目录 前言 优缺点 常见名词介绍 单机版安装部署 集群部署 四种集群部署方式 集群部署 前言 目前主流的MQ主要是Rocketmq.kafka.Rabbitmq,Rocketmq相比于Rabbitmq.kafka具有主要优势特性有: 支持事务消息(能够解决分布式事务的问题) 支持顺序消息(底层已经使用内存队列实现) 支持consumer端tag过滤,减少不必要的网络传输 Rocketmq就是对kafka实现的升级版本. 优缺点 RocketMQ 优点 单机吞吐量:十万级 可用性:非常高,分布式架

  • 在windows上用docker desktop安装部署StoneDB

    目录 1.安装Docker desktop 1.1 下载 1.2 安装 1.3 安装WSL 2核心 1.4 安装Docker desktop完成 1.5.配置镜像加速 2.用docker安装StoneDB 2.1 拉取StoneDB镜像 2.2 创建容器 2.3 连接StoneDB数据库 自6月底开源以来,许多热心的社区用户都对StoneDB进行了编译和测试,也有一些用户询问StoneDB是否会支持Windows.虽然适配Windows版本的StoneDB尚未进入研发计划,但实际上我们也可以通过

  • docker搭建jenkins+maven代码构建部署平台

    目录 Docker基本概念 Docker安装过程(Centos6.9) 升级内核 安装docker-io 基于Docker的jenkins安装 拉取应用 运行容器 跟踪应用log 关闭打开容器 tomcat账户配置 配置jenkins,构建部署war应用 配置JDK.Maven等参数 新建任务构建部署 通过ssh脚本部署maven项目到指定Tomcat中 配置Publish Over SSH插件 编写部署ssh脚本 项目构建配置 由于项目开发,经常需要在本地搭一些环境进行开发或测试,大家知道搭环

  • Docker的安装方法及运行Docker Swarm模式的使用

    Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 概要 docker就给简单介绍这么多,这里主要说说docker swarm. docker engine本身只提供了容器技术,没有解决集群环境下的容器编排和通信.docker swarm是一个容器编排管理工具,docker-engine在1.12版本之后集成了docker

  • Ubuntu 16.04中Docker的安装和代理配置教程

    前言 最近想在测试环境下快速搭建一套gitlab ci环境,推进下项目组内规范化开发管理.自己在家里的nas上是用docker部署的gitlab,体验非常的好,正好ubuntu 16.04 lts发布了,也想借此机会接触下新版内核和systemd. Ubuntu的安装 这里就省略不介绍了.唯一的问题是当前版本的官方镜像,选中文在安装阶段会报一个busybox的错误,换成英文就好了. 大家也可以参考这篇文章:http://www.jb51.net/article/100919.htm,里面介绍的也

随机推荐