经过几年的热炒,docker的神秘面纱已经渐渐褪去,现在已经被越来越多的业界人士所熟知并应用到实践中。原来我也以为docker入门很复杂很难上手,但经过近两天的琢磨并亲手搭建尝试,终于体会到了docker的强大已及易用性,现在通过简单的安装及操作,使大家认识docker。
STEP1.首先按装虚拟机并给虚拟机安装系统。
用workstation也好,VMware虚拟机也罢,提前做好纯净的镜像,方便出错后可以快速还原回滚。
查看虚拟机系统版本,我用的是Centos 7.4系统.查看系统版本,网上说3.10版本以上可用。
STEP2.下载并安装yum源更新文件。
我这里用的是清华大学TUNA协会提供的镜像源。请按以下步骤操作完成docker系统安装.
wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
yum repolist
STEP3.安装并启动docker服务。
yum -y install docker
解决依赖关系,等待安装完成。
启动docker服务,
service docker start
将docker服务加入开机自启动。
chkconfig docker on
查看版本,并获取最新版的Centos镜像文件,
docker version
Docker集中化WEB管理工具Shipyard安装
Docker常用的图形页面管理工具有三种: DOCKER UI,Shipyard,Portainer。这里我们简单按装下Shipyard。
Step1.首先确保docker环境已经安装好,我们直接下载脚本式一键安装的方法,当然也可以用docker单独将应用包拉下来在装。主要需下载的包有:
Step2.修改shipyard默认web访问端口(很重要),操作如下:
cat shipyard-deploy |grep 8080
比如将脚本中默认的8080端口改为8888端口:
注意:如果容器中8080端口已被其它程序占用,那么安装会失败,需要逐条停止后卸载。
我之前上面跑着tomcat,端口号是8080,安装时因端口被占用而报错。
停止、卸载,
停止容器:docker stop CONTAINER ID
删除卸载Shipyard环境操作:cat shipyard-deploy |ACTION=remove bash
Step3.下载脚本并部署安装
脚本下载链接:https://pan.baidu.com/s/1OY5J017a0oRcrQVZOdJj4A
上传到服务器后给予可执行权限,chmod 755 shipyard-deploy(脚本名)
或chmod +x shipyard-deploy,接着执行一键部署安装操作。
sh shipyard-deploy
Step4.浏览器访问http://192.168.0.176:8888
Docker集群管理(一)—— 基础docker+swarm+shipyard
1.在任意的docker节点创建一个全世界唯一的token(集群ID)2d94af21b49ee263d0fe6a6ffb270484
docker run --rm swarm create
启动swarm manger
docker run -ti -d -p 2376:2375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:2375 token://2d94af21b49ee263d0fe6a6ffb270484
参考链接:
https://www.cnblogs.com/kevingrace/p/6867820.html
http://www.runoob.com/docker/docker-start-stop-restart-command.html
STEP4.docker通过镜像库下载所需文件
使用docker search XXX 查询你需要的镜像包
通过docker pull XXX 下载你需要的镜像包,需要注意的是下载时必须根据镜像库里文件的路径,以docker.io/tomcat为例,docker.io后面为包名,如中间还有目录,需在下载时使用目录路径。如查询到的目录为docker.io/primetoninc/jdk时,下载时应该使用docker pull primetoninc/jdk进行下载。
STEP5.查看容器中有哪些镜像文件,使用docker images命令。
STEP6.启动并运行一个tomcat。
docker run -p 8080:8080 docker.io/tomcat(容器和主机的映射端口 前者是外围访问端口:后者是容器内部端口)此种方法启动后退出再启动会报错,重启宿主虚拟机后在用下面方法启动时成功了。
或者docker run -d -p 8080:8080 168588387c68
STEP7.启动后通过浏览器访问192.168.0.176:8080,176为我在vmware上的虚拟宿主机IP。
STEP8.使用docker来安装superset,其实就是在docker上运行centos7来安装superset
获取最新Centos
docker pull centos
启动Centos容器并查看对应版本。
docker run -i -t centos /bin/bash
STEP9.安装相关依赖包、pip及虚拟环境包
yum upgrade python-setuptools
yum -y install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel
yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip
pip install virtualenv
STEP10.安装pip更新工具包及psycopg2-binary
pip install --upgrade setuptools pip
pip install psycopg2-binary
pip install scrapy
STEP11.pip方式安装superset
pip install superset
在此产生错误,请注意python版本号,推荐使用python3以上的。出现错误之后我是将镜像下载下来再用容器方法启动后实现的。
STEP12.容器镜像启动superset服务
docker run --restart=always -d -p 8088:8088 3d9d5176fc33(IMAGE ID)
STEP13.初始化superset并启动,用户密码 admin/123456
docker exec -it 73e2d17a6727(CONTAINER ID) fabmanager create-admin --app superset
浏览器访问http://192.168.0.176:8088/login/
STEP14.加载默认数据到sqlite数据库中进行展示
root@ea2135e97167:/var/lib/superset# superset load_examples
(此处可以通过shipyard控制台进入,也可命令行容器内操作)
Loading examples into <SQLA engine=sqlite:var/lib/superset/superset.db>
Creating default CSS templates
Loading energy related dataset
Creating table [wb_health_population] reference
2019-03-01 17:17:51,673:INFO:root:Creating database reference
2019-03-01 17:17:51,778:INFO:root:Database.get_sqla_engine(). Masked URL: sqlite:var/lib/superset/superset.db
Loading [World Bank's Health Nutrition and Population Stats]
Creating table [wb_health_population] reference
2019-03-01 17:18:08,751:INFO:root:Creating database reference
Creating slices
Creating a World's Health Bank dashboard
Loading [Birth names]
Done loading table!
Creating table [birth_names] reference
2019-03-01 17:18:13,899:INFO:root:Creating database reference
Creating some slices
Creating a dashboard
Loading [Random time series data]
Done loading table!
2019-03-01 17:18:55,158:INFO:root:Creating database reference
Done loading table!
Loading [BART lines]
Creating table bart_lines reference
2019-03-01 17:18:55,544:INFO:root:Creating database reference
Loading [Multi Line]
Creating table [wb_health_population] reference
2019-03-01 17:19:13,392:INFO:root:Creating database reference
Creating slices
Creating a World's Health Bank dashboard
Done loading table!
Creating table [birth_names] reference
2019-03-01 17:19:17,501:INFO:root:Creating database reference
Creating some slices
Creating a dashboard
Loading [Misc Charts] dashboard
Creating the dashboard
Loading DECK.gl demo
Loading deck.gl dashboard
Creating Scatterplot slice
Creating Screen Grid slice
Creating Hex slice
Creating Grid slice
Creating Polygon slice
Creating Arc slice
Creating Path slice
Creating a dashboard
访问仪表盘:http://192.168.0.176:8088/superset/dashboard/MDboards/
参考学习网站:
https://www.jianshu.com/p/e1d3e25abcba
https://www.jianshu.com/p/d5978b439080
http://www.runoob.com/docker/docker-command-manual.html
使用docker搭建gitlab版本控制系统
(1)拉取Gitlat镜像
docker pull gitlab/gitlab-ce
镜像拉取报错处理
error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/18/18da462b5ff5ae77adbca3a5a522cd8c2c9172d8dc168caf42edc6a8684890c0/data?verify=1552880300-1ur28woKlLl%2FbnW03%2FesamlQZik%3D: dial tcp 104.18.122.25:443: i/o timeout
由于无法连接到docker hub,优先使用:
echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://f2d6cb40.m.daocloud.io\"" | sudo tee -a /etc/default/docker
service docker restart
docker pull registry
解决!
1.鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,需要配置加速器来解决,可以使用的是网易的镜像地址:http://hub-mirror.c.163.com。
新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。
请在该配置文件中加入(没有该文件的话,请先建一个):
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
具体过程:
vim /etc/docker/daemon.json
若因权限无法修改,加上sudo,即sudo vim /etc/docker/daemon.json,保存并退出后,重新运行docker run hello-world
成功!
2.可以找到 Docker 配置文件,一般配置文件在/etc/default/docker目录下,
sudo vim /etc/default/docker
然后,插入以下内容
DOCKER_OPTS="$DOCKER_OPTS --registry-mirror=http://hub-mirror.c.163.com"
(2)从gitlab镜像启动容器
英文企业版:docker run -d -h gitlab -p 443:443 -p 80:80 -p 2222:22 --name gitlab --restart always -v /root/data/gitlab/config:/etc/gitlab -v /root/data/gitlab/logs:/var/log/gitlab -v /root/data/gitlab/data:/var/opt/gitlab docker.io/gitlab/gitlab-ce
中文社区版:docker run -d -h gitlab -p 4433:4433 -p 800:800 -p 2222:22 --name gitlab --restart always -v /root/data/gitlab/config:/etc/gitlab -v /root/data/gitlab/logs:/var/log/gitlab -v /root/data/gitlab/data:/var/opt/gitlab docker.io/twang2218/gitlab-ce-zh
说明:
-d 后台启动
-h hostname
-p 容器的端口映射
--name 容器的名字
--restart always 当容器退出或宿主机重启的时候,容器接着会始终重启
-v 给容器添加一个数据卷
(3)修改gitlab容器的配置文件
docker exec -it gitlab
vi /etc/gitlab/gitlab.rb
修改为服务器的ip地址:
13 external_url 'http://192.168.0.176'
然后重启容器gitlab
docker restart gitlab
初始化gitlab密码
docker exec -it df8198f2f826 /bin/bash
gitlab-rails console production
在irb(main):001:0> 后面通过 u=User.where(id:1).first 来查找与切换账号(User.all 可以查看所有用户)
通过u.password='12345678'设置密码为12345678(这里的密码看自己喜欢)
通过u.password_confirmation='12345678' 再次确认密码
通过 u.save!进行保存(切记切记 后面的 !)
如果看到上面截图中的true ,恭喜你已经成功了,执行 exit 退出当前设置流程即可。
(4)访问gitab http://192.168.0.176
转载于:https://blog.51cto.com/wanderboy/2373074