之前公司的部署都是运维在弄,过年在家自己也动手操作了下,学习了一下,这里做个总结,docker安装软件的操作,其实是一个套路。
总结了以下的常用命令
docker run java 直接进行下载并安装
docker pull java 仅仅下载到镜像
docker images 查看镜像
docker search java 搜索镜像
docker rmi id(从docker images中查找)删除指定镜像
Docker rm 容器id 删除容器id
docker pull 下载镜像
docker run 下载并安装镜像
docker ps 查看有哪些镜像正在运行
docker inspect 容器id 查看容器信息
systemctl restart docker 重启docker(如果启动不了docker可以先重启)
docker build –t 镜像名称:标签 Dockerfile的相对位置 打成docker的镜像文件
docker info查看docker相关信息
docker inspect 容器ID | grep IPAddress 查看docker的ip地址
docker stop 容器ID 停止某个容器运行
docker exec -it 容器id bash 进入docker
//关闭防火墙
systemctl stop firewalld.service
//禁用
systemctl disable firewalld.service
docker exec -it 容器id /bin/bash 进入容器
docker exec -it 容器name /bin/bash 进入容器
docker rm $(sudo docker ps -a -q) 删除所有未运行的容器
docker search elasticsearch搜索镜像文件
docker run 创建并启动一个容器,在run后面加上-d参数,就是后台启动不加-d就是前台启动
docker ps -a 查看已经创建的容器
docker ps -s查看已经启动的容器
docker start con_name 启动容器名为con_name的容器
docker stop con_name 停止容器名为con_name的容器
docker rm con_name 删除容器名为con_name的容器
docker rename old_name new_name 重命名一个容器
docker lgos --tail="10" 容器名称查询容器日志信息
free -m 查看内存使用容量
docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt
Testtomcat是容器名称,test.js是容器的路径,/opt是要复制到宿主机上的路径,容器复制到宿主机
docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js /opt/test.js是宿主机上的文件,/usr/local/tomcat/webapps/test/js是容器中的路径,testtomcat是容器名称 宿主机拷贝到容器
https://www.cnblogs.com/areyouready/p/8973495.html
[Docker Hub](https://hub.docker.com/)官网https://hub.docker.com/search?q=java&type=image
一.docker的安装
Docker 要求 CentOS 系统的内核版本在 3.10以上,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。我这里用的是centos7, centos6已经不支持docker了,内核版本只有2.6
1、通过 uname -r 命令 查看你当前的内核版本
uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
yum -y update 如果报错可以先yum clean all然后再yum –y update
3、卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
7、安装docker
sudo yum install -y docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1
8、启动并加入开机启动
systemctl start docker
systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
设置阿里云加速镜像的方法
详细参考: https://cr.console.aliyun.com/cn-hangzhou/mirrors
Nginx安装
1.下载Nginx镜像文件
docker pull nginx
docker images
2.创建挂载目录
mkdir -p /data/nginx/{conf,conf.d,html,logs}
3.编写Nginx配置文件
详细参考资料
4.启动容器
docker run -dit --restart unless-stopped --name mynginx -d -p 80:80 -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx -d docker.io/nginx
docker run -dit --restart unless-stopped redis 加上这个就是关机后也会开启 -dit是镜像名
6.查看容器
docker ps
MySQL安装
1.查询mysql版本
docker search mysql
2.下载MySQL5.7版本
docker pull mysql:5.7 (这里选择的是第一个mysql镜像, :5.7选择的5.7版本)
3.等待下载完成、创建MySQL容器
docker run -dit --restart unless-stopped --name mysql3308 -e MYSQL_ROOT_PASSWORD=root -p 3308:3306 mysql:5.7(-dit --restart unless-stopped是开机自启动)开机自启docker
创建容器名称为mysql3308,密码为root
5.进入到容器
docker exec -it mysql3308 bash
6.mysql连接
mysql -u root -p
Redis安装
1.查询redis版本
docker search redis
2.下载redis版本
docker pull redis
在宿主机新建两个目录用来挂载
mkdir /root/docker/redis/conf /root/docker/redis/data
3. 等待下载完成、创建MySQL容器
docker run -d --restart unless-stopped --privileged=true--name redis6379 -v /root/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /root/docker/redis/data:/data -p 6379:6379 redis --requirepass "123456"
-d后台启动,-p映射端口,-itd --name设置容器名称,--requirepass设置密码
4.进入到容器
docker exec -it redis6379 /bin/bash
参考文章
https://www.cnblogs.com/tianhuiht/p/11130455.html
--privileged=true -> 提升容器内权限
-v /root/docker/redis/conf:/etc/redis/redis.conf -> 映射配置文件
-v /root/docker/redis/data:/data -> 映射数据目录 --appendonly yes -> 开启数据持久化
基于Docker部署GitLab环境搭建
建议虚拟机内存2G以上,我用阿里云虚拟机(双核4G,一个gitlab一个marven私服,一个jenkins就起不来了,后来换成vwmare给到8G基本保持速度很快)
建议虚拟机内存2G以上
1.下载镜像文件
docker pull beginor/gitlab-ce:11.0.1-ce.0
注意:一定要配置阿里云的加速镜像
2.创建GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。
mkdir -p /mnt/gitlab/etc
mkdir -p /mnt/gitlab/log
mkdir -p /mnt/gitlab/data
3.运行GitLab容器
docker run \
--detach \
--publish 8443:443 \
--publish 8090:8090 \
--name gitlab \
--restart unless-stopped \
-v /mnt/gitlab/etc:/etc/gitlab \
-v /mnt/gitlab/log:/var/log/gitlab \
-v /mnt/gitlab/data:/var/opt/gitlab \
beginor/gitlab-ce:11.0.1-ce.0
停止docker容器,并且删除
Docker stop 容器id
Docker rm 容器id
systemctl stop firewalld
4.修改/mnt/gitlab/etc/gitlab.rb
把external_url改成部署机器的域名或者IP地址
vi /mnt/gitlab/etc/gitlab.rb
external_url 'http://127.0.0.1:8090'
4.修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml
vi /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml
找到关键字 * ## Web server settings *
将host的值改成映射的外部主机ip地址和端口,这里会显示在gitlab克隆地址
在通过docker exec -it gitlab /bin/bash进入到gitlab容器,
修改vi /var/opt/gitlab/gitlab-rails/etc/gitlab.yml,也改成8090(然后在docker stop gitlab,docker rm gitlab,运行上面第三步启动后立刻进入容器在gitlab还没有完全启动的时候修改这个值,就不会导致容器的这个值覆盖宿主机上了。)
image.png
maven nexus私服的原理
基于Docker搭建Maven私服
1.下载一个nexus3的镜像
docker pull sonatype/nexus3
2.将容器内部/var/nexus-data挂载到主机/root/nexus-data目录。
docker volume create --name nexus-data
docker run --restart unless-stopped -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3
docker volume inspect nexus-data 查看存在宿主机上的位置
关闭防火墙,访问
Maven私服启动容器稍微比较慢,等待1分钟即可。
默认登陆账号 admin admin123
使用Jenkins与Git自动化部署原理
1.使用docker 安装jenkins
docker run --restart unless-stopped --name myjenkins -p 8080:8080 -p 7070:7070 -d -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
docker exec -it myjenkins /bin/bash 进入jenkins容器
cat /var/jenkins_home/secrets/initialAdminPassword 查看密码
卡白屏的原因需要翻墙或者换成<u>www.baidu.com</u>
vi /var/jenkins_home/updates/default.json
Jenkins全局工具配置
进入到jenkins容器中 echo $JAVA_HOME 获取java环境安装地址
安装Jenkins对应Maven插件
找到 “系统管理“ - “安装插件(插件管理)” ,点击 “可选插件”,找到如下maven插件的版本
插件名称 Maven Integration
- 配置任务git账号密码 3.项目打包
clean install
第一次构建可能耗时比较长,因为需要下载一些相关依赖jar包
网友评论