跳至主要內容

docker容器实战

知识库容器技术DockerDocker大约 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/open in new window

镜像地址:https://hub.docker.com/_/redis?tab=tag&page=1&ordering=last_updatedopen in new window

# 拉取镜像
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.mdopen in new window

# 拉取镜像
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/open in new window

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/open in new window

Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。

镜像地址:https://hub.docker.com/_/jenkins?tab=tag&page=1&ordering=last_updatedopen in new window

# 拉取镜像
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自动监控报警系统

官网地址:https://prometheus.io/open in new window

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/open in new window
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