学习笔记,仅供参考
- docker指令
- 镜像images
- 容器container
- nignx,tomcat,elasticsearch部署
- nignx部署
- tomcat部署
- elasticsearch部署
- portainer 可视化界面
- 提交镜像
docker version:查看相关版本信息 docker info:巨详细信息,包括镜像和容器数量 docker --help 查看命令去官网或者--help镜像images
docker images:查看已下载镜像 REPOSITORY:仓库源 TAG 标签 IMAGE ID 镜像的id CREATED 创建时间 SIZE 镜像大小 docker images -a:显示所有镜像 docker images -q:显示所有镜像的id docker search mysql:搜索相关的应用镜像 docker search mysql --filter=STARS=5000:过滤 docker pull:下载镜像 docker rmi -f :删除 image镜像 删除镜像可以通过名称和id来删;删除多个容器 用空格隔开; docker rmi -f $(docker images -aq):删除全部容器容器container
#以centos为例下载并启动镜像 docker pull centos:下载镜像 docker run [可选参数] images #参数说明 --name="name" 容器名称,可自定义 -d 后台运行方式相当于nohup -it 使用交互方式运行,进入容器查看内容 -p 指定容器的端口 -p 8080:8080 -p ip:主机端口:容器端口 -p 主机端口:容器端口 -p 容器接口 容器端口 -p 随机指定端口 #测试,启动 [root@centos7 overlay2]# docker run -it centos 或者 docker run -it centos /bin/bash [root@cc50a97ce1d7 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@4bd8328d7a35 /]# exit 容器停止退出 ctrl+p+q 容器不停止退出 docker ps:查看正在运行的进程 docker ps -a:查看曾经所有运行的镜像 docker ps -n=2:查看最经运行的几个容器 docker ps -q:只显示容器的编号 指令可以合并 比如-a -q ==-aq [root@d0c1d9333656 /]# [root@centos7 overlay2]# docker ps (ctrl+p+q快捷键,骚 *** 作,是指你从哪个目录启动的docker) ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d0c1d9333656 centos "/bin/bash" 2 minutes ago Up 2 minutes vigilant_northcutt docker rm 容器id :删除容器。不能删除正在运行的容器,如果强制删除 rm -f docker rm -f $(docker ps -aq):删除所有容器 docker ps -a -q|xargs docker rm :删除所有容器 docker start 容器id 启动容器 docker restart 容器id 重启容器 docker stop 容器id 停止当前正在运行的容器 docker kill 容器id 强制停止指定容器 #打印日志 写一个死循环并打印10条日志 [root@centos7 overlay2]# docker run -d centos /bin/sh -c "while true;do echo yang;sleep 1;done" be2529db6ca5f54fef5aa5e6877df71043aa775fddfcb1405f100ce6cfaa05ef [root@centos7 overlay2]# docker ps ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES be2529db6ca5 centos "/bin/sh -c 'while t…" 10 seconds ago Up 8 seconds amazing_colden [root@centos7 overlay2]# docker logs -tf --tail 10 be2529db6ca5 2021-10-17T13:39:55.804808888Z yang 2021-10-17T13:39:56.810690391Z yang 2021-10-17T13:39:57.816853013Z yang 2021-10-17T13:39:58.822710960Z yang 2021-10-17T13:39:59.828622238Z yang 2021-10-17T13:40:00.835065909Z yang 2021-10-17T13:40:01.841978343Z yang 2021-10-17T13:40:02.849322981Z yang 2021-10-17T13:40:03.854686749Z yang 2021-10-17T13:40:04.861178394Z yang 2021-10-17T13:40:05.865864647Z yang 2021-10-17T13:40:06.873827549Z yang 2021-10-17T13:40:07.878948714Z yang 2021-10-17T13:40:08.885135898Z yang 2021-10-17T13:40:09.891779713Z yang 2021-10-17T13:40:10.898066733Z yang 2021-10-17T13:40:11.903649141Z yang #查看容器内部的进程信息 docker top 容器ip(这个是ip) docker inspect 容器ip 查看镜像的元数据#进入当前正在运行的容器,之后的 *** 作就是基本的Linux *** 作 [root@centos7 overlay2]# docker exec -it a58ec8576a45 /bin/bash [root@a58ec8576a45 /]# ps -aux | grep java root 511 0.0 0.0 9192 732 pts/0 S+ 13:52 0:00 grep --color=auto java docker arrach 容器id :进入容器正在执行的终端,不会启动新的终端 dicker attach 容器id :进入容器后开启一个新的终端 #从容器内拷贝文件到主机上,这里有点奇怪的是,容器已经停了,还能访问 [root@centos7 home]# docker cp 容器id:/home/test.java /homenignx,tomcat,elasticsearch部署 nignx部署
# 启动nginx;外网的3344端口可以对应到内网的80端口 [root@centos7 ~]# docker run -d --name nginx01 -p 3344:80 nginx #-d后端运行,就可以一直跑 fa744e5b3c6246cc6d675a18c2a0aeda3408f43284c66e638d79b0d16e0655c7 本机自测nginx [root@centos7 ~]# curl localhost:3344tomcat部署Welcome to nginx! html { color-scheme: light dark; } body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } Welcome to nginx! #访问开放的端口,使用虚机地址加端口,不是localhost http://192.168.31.135:3343/ #进入到nginx里面 [root@centos7 ~]# docker exec -it nginx01 /bin/bash root@e3dd62d35491:/# whereis nginx nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx root@e3dd62d35491:/# cd /etc/nginx root@e3dd62d35491:/etc/nginx# ls conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
#安装tomcat,测试用,用完立刻删除 docker run -it --rm tomcat:9.0 但是不知道如何设置外网访问的端口 1.docker pull tomcat会直接下载最新版本的tomcat 2.docker run -d --name tomcat01 -p 3355:8080 tomcat运行之后,外网可随意访问 3.docker exec -it tomcat01 /bin/bash 进入容器里面 这种通过阿里云镜像安装的镜像,默认是最小的情况,剔除了所有不必要的文件;最小可运行环境。 cp -r webapps.dist/* webapps 拷贝命令,-r递归的复制,可能是因为文件夹的缘故elasticsearch部署
这样部署很简单,但是相当消耗资源,可以使用docker top 容器id查看
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2 docker stats 查看cpu使用率 [root@centos7 ~]# curl localhost:9200 { "name" : "e157f4d5afb3", "cluster_name" : "docker-cluster", "cluster_uuid" : "ai86HhRRRpmJ4BosWvbmRQ", "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" }
想要节省资源,那就限制他启动时占用的资源,需要==-e==进行设定
#环境配置,限制大小 docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms64m -Xmx512m" -e "discovery.type=single-node" elasticsearch:7.6.2portainer 可视化界面
进入初始页面之后,设置一下密码就可以登陆了,可以在界面上查看docker内部的所有信息。
docker可视化界面 portainer docker run -d -p 8088:9000 > --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer提交镜像
保存当前容器的状态,提交到镜像,以后可以使用我们自己保存的镜像,可使用docker images进行查看,
以tomcat为例
#保存自己当前容器的状态,提交镜像 #1.启动一个默认的tomcat #2.发现这个默认的tomcat是没有webapps应用 #3.我自己拷贝进去基本的文件 #4.提交自己修改的tomcat docker commit -a="yangkaibo" -m="add webapps app" 026959adc3dc tomcato2:1.0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)