小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
Docker 安装 Nginx
docker pull niginx
docker run -d --name nginx01 -p 8080:80 nginx
docker ps
# 容器内端口
# 宿主机端口
Docker 安装 Tomcat
用完即删
docker run -it --rm tomcat:9.0
docker pull tomcat
docker run -itd --name tomcat01 -p 8081:8080 tomcat
docer exec -it tomcat01 /bin/shell
mv webapps webapps_back
mv webapps.dist webapps
# 或者
cp -r webapps.dist/* webapps
Docker 安装 ES+Kibana
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
# 启动了 linux 就卡住了
# 解决方案
docker stats # 查看 docker cpu 的状态
# es 十分耗内存
# 测试 ES 是否成功
# 赶紧关闭, 增加内存的限制
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2
#kibana 连接 elasticsearch
{
"name" : "eb7c63f9d70c",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "NtM-wNqUTY2D5oEQcgi_XA",
"version" : {
"number" : "7.6.2",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date" : "2020-03-26T06:34:37.794943Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
可视化
portainer
Docker 图形化界面管理工具
docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
docker run -d -p 8088:9000 portainer/portainer
Rancher(CI/CD再用)
Docker 镜像原理
UnionFs 联合文件系统
如何提交自己的镜像? Commit 镜像
docker commit 提交容器成为一个新的镜像(副本)
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:tag
---------分割线: 入门完成---------
自己的小问题
容器启动成功后如何修改环境变量? -e 的
容器数据卷
将应用于运行环境打包成一个镜像!
需求: 数据可以存储在本地, 数据共享的技术
容器卷::目录的挂载
总结: 容器的持久化和同步操作
方式 1: 直接使用命令挂载 -v
# 测试
docker run -it -v 主机目录:容器内目录
docker run -id -v /Users/xujiantong/home/ceshi:/home centos /bin/bash
# 查看挂载信息
docker inspect <容器 id>
"Mounts": [
{
"Type": "bind",
"Source": "/Users/xujiantong/home/ceshi",
"Destination": "/home",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
安装 mysql
docker run -d -p 3310:3306 -v /Users/xujiantong/home/mysql/conf:/etc/mysql/conf.d \
-v /Users/xujiantong/home/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --privileged=true mysql:5.7
具名挂载和匿名挂载
# 匿名挂载
docker run -d -P --name nginx01 -v /etc/nginx nginx
docker volume --help
# 查看所有的容器卷的情况
docker volume ls
# 匿名卷挂载
DRIVER VOLUME NAME
local 2318a8b7cf4bb6d58e893688c30b8cd89efb97da6f7a82a199a7486ca3c22681
# 查看具体信息
docker volume inspect 2318a8b7cf4bb6d58e893688c30b8cd89efb97da6f7a82a199a7486ca3c22681
# 具名挂载
docker run -d -P nginx02 -v juming:/etc/nginx nginx
ro readonly
rw readwrite # 可读可写
docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx:rw nginx
\