Docker课程需要的镜像:
jenkins:latest
mysql:5.5
prom/prometheus:latest
grafana/grafana:latest
bitnami/mariadb:latest
selenium/node-chrome-debug:3.7.1-beryllium
selenium/hub:3.7.1-beryllium
prom/mysqld-exporter:latest
bitnami/testlink:latest
老师自己做了三个镜像+上面所有镜像百度云盘地址:
链接:百度网盘-链接不存在 密码:isgg
Docker最新课件已上传至腾讯课堂-课程概述—>Docker课件20181027.pdf
Docker的关键技术
- Namespace
- 联合文件系统
- Cgroups
镜像管理命令
-
- docker pull {image_name} (拉取镜像)
- docker pull {image_name} (拉取镜像)
-
- docker push {image_name} (推送镜像)
- docker push {image_name} (推送镜像)
-
- docker images (查看当前机器的所有镜像)
- docker images (查看当前机器的所有镜像)
-
- docker rmi {image_name} (删除当前机器的一个镜像)
- docker rmi {image_name} (删除当前机器的一个镜像)
-
- docker tag {source_images_name:tag your_image_name:tag} 为一个镜像打tag
- docker tag {source_images_name:tag your_image_name:tag} 为一个镜像打tag
-
- docker save busybox > busybox.tar
- docker save busybox > busybox.tar
-
- docker load < busybox.tar.gz
- docker load < busybox.tar.gz
容器管理命令
-
- docker run --name={your_name} --d {image_name} (运行容器)
- docker run --name={your_name} --d {image_name} (运行容器)
-
- docker ps -s -a {查看当前所有容器}
- docker ps -s -a {查看当前所有容器}
-
- docker stop {container_name} (停止容器)
- docker stop {container_name} (停止容器)
-
- docker kill (container_name) {杀死容器}
- docker kill (container_name) {杀死容器}
-
- docker rm -f {container_name} (删除容器)
- docker rm -f {container_name} (删除容器)
查新信息相关命令
-
- docker logs -f {容器名称} (查看容器日志)
- docker logs -f {容器名称} (查看容器日志)
-
- docker info (查看docker服务的信息)
- docker info (查看docker服务的信息)
-
- docker inspect {容器名称} (查看容器的元数据)
- docker inspect {容器名称} (查看容器的元数据)
与容器交互的命令
-
- docker exec -it {容器名称} bash 进入容器,exec的意思是在容器中运行一个命令。 如果是bash 并且指定了-it 就会打开容器的shell 交互
- docker exec -it {容器名称} bash 进入容器,exec的意思是在容器中运行一个命令。 如果是bash 并且指定了-it 就会打开容器的shell 交互
-
- docker cp {container:name}:{container_path} {host_path} 把宿主机上的一个文件copy到容器中
- docker cp {container:name}:{container_path} {host_path} 把宿主机上的一个文件copy到容器中
容器运行命令的一些参数
-
- –name 指定容器名称
- –name 指定容器名称
-
- -d 后台运行
- -d 后台运行
-
- -port 指定端口映射规则
- -port 指定端口映射规则
-
- –network 指定容器运行的网路模式
- –network 指定容器运行的网路模式
-
- -v 指定需要挂载的数据卷
- -v 指定需要挂载的数据卷
-
- -env 指定需要传递给容器的环境变量
- -env 指定需要传递给容器的环境变量
搭建jenkins
-
- docker pull jenkins
- docker pull jenkins
-
- docker rm -f myjenkins
- docker rm -f myjenkins
-
- docker run --name myjenkins -itd --network host -v /home/gaofei/tech/images/jenkins_home:/var/jenkins_home --env JAVA_OPTS=“-Xmx8192m” jenkins
- docker run --name myjenkins -itd --network host -v /home/gaofei/tech/images/jenkins_home:/var/jenkins_home --env JAVA_OPTS=“-Xmx8192m” jenkins
-
- docker run --name myjenkins -itd -p 8001:8080 -v /home/gaofei/test/jenkins_home:/var/jenkins_home --env JAVA_OPTS=“-Xmx8192m” jenkins
- docker run --name myjenkins -itd -p 8001:8080 -v /home/gaofei/test/jenkins_home:/var/jenkins_home --env JAVA_OPTS=“-Xmx8192m” jenkins
PS: 注意挂载权限:sudo chown -R 1000:1000 /home/docker/jenkins
桥接模式
BRIDGE模式
搭建testlink
-
- docker run -d --name mariadb -e ALLOW_EMPTY_PASSWORD=yes -e MARIADB_USER=bn_testlink -e MARIADB_DATABASE=bitnami_testlink -v /home/gaofei/test/mysql:/var/lib/mysql -p 8088:3306 bitnami/mariadb:latest
-
- docker run -d --name testlink -p 8099:80 -p 444:443 -e ALLOW_EMPTY_PASSWORD=yes -e TESTLINK_DATABASE_USER=bn_testlink -e TESTLINK_DATABASE_NAME=bitnami_testlink --link mariadb bitnami/testlink:latest
使用selenium docker(拉镜像)
-
- docker pull selenium/node-chrome-debug:3.7.1-beryllium
-
- docker pull selenium/hub:3.7.1-beryllium
启动命令
- 1.docker run --name=hub -p 5001:4444 -e GRID_TIMEOUT=0 -e GRID_THROW_ON_CAPABILITY_NOT_PRESENT=true -e GRID_NEW_SESSION_WAIT_TIMEOUT=-1 -e GRID_BROWSER_TIMEOUT=15000 -e GRID_TIMEOUT=30000 -e GRID_CLEAN_UP_CYCLE=30000 -d selenium/hub:3.7.1-beryllium
- 2.docker run --name=chrome -p 5902:5900 -e NODE_MAX_INSTANCES=6 -e NODE_MAX_SESSION=6 -e NODE_REGISTER_CYCLE=5000 -e DBUS_SESSION_BUS_ADDRESS=/dev/null -v /dev/shm:/dev/shm --link hub -d selenium/node-chrome-debug:3.7.1-beryllium
- VNC密码是:secret
启动prometheus和node-exporter
-
- docker run --name prometheus -d -p 9090:9090 -v
pwd
/prometheus.yml:/etc/prometheus/prometheus.yml -vpwd
/rules/:/etc/prometheus/ prom/prometheus --config.file=/etc/prometheus/prometheus.yml
- docker run --name prometheus -d -p 9090:9090 -v
-
- 下载好node exporter的包后,运行: ./node_exporter
prometheus配置文件
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
rule_files:
- rules/*.rules
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['39.105.132.200:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['39.105.132.200:9100']
- job_name: 'mysql'
static_configs:
- targets: ['39.105.132.200:9104']
启动grafana
-
- docker run --name grafana -d -p 8000:3000 grafana/grafana
启动mysqld-exeporter
-
- docker run -d --name mysql-exporter -p 9104:9104 -e DATA_SOURCE_NAME=“root:1qaz9ol.@(39.105.132.200:8888)/mysql” prom/mysqld-exporter
内存使用率
- 100*(node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes
磁盘使用率
- 100.0 - 100 * ((node_filesystem_avail_bytes{mountpoint=~“/”, device!=“rootfs”} / 1000 / 1000 ) / (node_filesystem_size_bytes{mountpoint=~“/”, device!=“rootfs”} / 1024 / 1024))