docker镜像容器命令大全

docker镜像容器命令大全,第1张

docker镜像容器命令大全

学习笔记,仅供参考

docker镜像容器命令
      • docker指令
      • 镜像images
      • 容器container
      • nignx,tomcat,elasticsearch部署
          • nignx部署
          • tomcat部署
          • elasticsearch部署
      • portainer 可视化界面
      • 提交镜像

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



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部署
#安装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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3990049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存