IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> docker镜像容器命令大全 -> 正文阅读

[系统运维]docker镜像容器命令大全

学习笔记,仅供参考

docker指令

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  /home

nignx,tomcat,elasticsearch部署

nignx部署
# 启动nginx;外网的3344端口可以对应到内网的80端口
[root@centos7 ~]# docker run -d --name nginx01 -p 3344:80 nginx #-d后端运行,就可以一直跑 
fa744e5b3c6246cc6d675a18c2a0aeda3408f43284c66e638d79b0d16e0655c7
本机自测nginx
 [root@centos7 ~]# curl localhost:3344
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
#访问开放的端口,使用虚机地址加端口,不是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部署
#安装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.2

portainer 可视化界面

进入初始页面之后,设置一下密码就可以登陆了,可以在界面上查看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
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-19 12:18:43  更:2021-10-19 12:19:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:40:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码