docker容器实战
大约 3 分钟
docker安装nginx
# 拉取镜像
docker pull nginx:1.14.0
docker images
# 运行容器
docker run --name nginx-test -p 8080:80 -d nginx:1.14.0
# 访问地址
curl 127.0.0.1:8080
# 进入nginx-test内部
docker exec -it nginx-test /bin/bash
将容器制作为镜像
以上述的nginx容器为例
# 将nginx-test容器打包成镜像
docker commit nginx-test my/nginx:v1
# 查看镜像
docker images
# 导出镜像
docker save -o my-nginx.tar my/nginx:v1
docker save my/nginx:v1 > /opt/docker/my-nginx.tar
# 导入镜像
docker load -i nginx-k8s.tar
docker load < /opt/docker/my-nginx.tar
docker安装mysql
# 拉取镜像
docker pull mysql:5.7
# 准备文件
mkdir -p /opt/docker/mysql/data /opt/docker/mysql/logs /opt/docker/mysql/conf
touch /opt/docker/mysql/conf/my.cnf
# 运行mysql容器
docker run -p 3306:3306 --name mysql -v /opt/docker/mysql/conf:/etc/mysql/conf.d -v /opt/docker/mysql/logs:/logs -v /opt/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
# 客户端连接
mysql -uroot -p -h 192.16.18.115
docker安装redis
官网地址:https://redis.io/
镜像地址:https://hub.docker.com/_/redis?tab=tag&page=1&ordering=last_updated
# 拉取镜像
docker pull redis:6.0.10
# 运行容器
docker run --name redis-test -p 6379:6379 -v /data/redis/data:/data -d redis:6.0.10 --appendonly yes
# 进入客户端
docker exec -it redis-test redis-cli
docker安装solr
官方文档:https://github.com/docker-solr/docker-solr/blob/master/README.md
# 拉取镜像
docker pull solr:6.5.1
# 运行solr
#docker run -it --rm --name solr -d -p 8983:8983 -v $HOME/mydata:/opt/solr/mydata solr:6.5.1
docker run --name solr -d -p 8985:8983 solr:6.5.1
# 创建core
docker exec -it --user=solr solr bin/solr create_core -c gettingstarted
# 加载数据
docker exec -it --user=solr solr bin/post -c gettingstarted example/exampledocs/manufacturers.xml
#将宿主机文件复制到容器
docker cp $HOME/mydata/mydata.xml my_solr:/opt/solr/mydata.xml
#加载数据
docker exec -it --user=solr solr bin/post -c gettingstarted mydata.xml
docker安装tomcat
docker pull tomcat:7-jre7
docker run -di --name=demo_tomcat -p 9000:8080 tomcat:7-jre7
docker安装elasticsearch
# 拉取镜像
docker pull elasticsearch:6.8.12
# 运行容器
docker run -d --name demo_es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.8.12
# 验证
curl 127.0.0.1:9200
docker安装轻量级Spug平台
官网地址:https://spug.dev/
Spug是面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件在线上传下载、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。
# 拉取镜像
docker pull registry.aliyuncs.com/openspug/spug
# 运行容器
docker run -d --restart=always --name=spug -p 80:80 registry.aliyuncs.com/openspug/spug
# 初始化密码
docker exec spug init_spug root 123456
# 重启容器
docker restart spug
docker安装jenkins
官网地址:http://www.jenkins.io/
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
镜像地址:https://hub.docker.com/_/jenkins?tab=tag&page=1&ordering=last_updated
# 拉取镜像
docker pull jenkins/jenkins:2.222.3-centos
# 映射本地数据卷的路径为/data/jenkins_home/
mkdir -p /data/jenkins_home/
# 需要修改下目录权限,容器中jenkins用户的 uid 为 1000。
chown -R 1000:1000 /data/jenkins_home/
# 运行容器
docker run -d --name jenkins -p 8040:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:2.222.3-centos
# 访问 http://192.16.18.151:8040 需要耐心等待jenkins启动
# 查看管理员密码 下面两条命令,选择其一
cat /data/jenkins_home/secrets/initialAdminPassword
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
docker安装prometheus自动监控报警系统
docker pull prom/prometheus
docker pull grafana/grafana
docker pull prom/node-exporter
docker pull oliver006/redis_exporter
docker run -d -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" prom/node-exporter
# 访问 http://192.16.18.150:9100/metrics
mkdir -p /data/prometheus
cat > /data/prometheus/prometheus.yml << EOF
global:
scrape_interval: 60s
evaluation_interval: 60s
# 这里表示抓取对象的配置
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
instance: prometheus
- job_name: summer
static_configs:
- targets: ['192.16.18.150:9100']
labels:
instance: summer
EOF
docker run -d -p 9090:9090 -v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
# 访问 http://192.16.18.150:9090
mkdir -p /data/grafana/storage && chmod 777 /data/grafana/storage
docker run -d -p 3000:3000 --name=grafana -v /data/grafana/storage:/var/lib/grafana grafana/grafana
# 访问 http://192.16.18.150:3000 账号密码都是:admin
docker安装Rancher
官方地址:https://rancher.com/docs/rancher/v1.6/zh/installing-rancher/installing-server/ K8S可视化管理工具Rancher
Rancher简化了使用K8S的流程,开发者可以随处运行K8S,满足IT需求规范,赋能DevOps团队。
# 拉取镜像
docker pull rancher/rancher:v2.5-head
# 创建容器
docker run -p 80:80 -p 443:443 --name rancher --privileged --restart=unless-stopped -d rancher/rancher:v2.5-head
curl https://192.16.18.151
docker安装nacos
docker run -d --restart=always -p 8848:8848 --env MODE=standalone --name nacos nacos/nacos-server:2.0.1