栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker命令(二)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker命令(二)

容器命令

说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习

docker pull centos
docker ps 查看docker 容器
#docker ps 
     # 列出当前正在运行的容器
-a   # 列出所有容器的运行记录
-n=? # 显示最近创建的n个容器
-q   # 只显示容器的编号
# docker的所有容器
[root@iZwz93j24hpsj03xcor6ieZ /]# docker ps -a
CONTAINER ID   IMAGE                 COMMAND                  CREATED             STATUS                         PORTS                                                                                                         NAMES
b63b4ed25943   centos                "/bin/bash"              2 minutes ago       Exited (0) 27 seconds ago                                                                                                                    awesome_goldwasser
d35f85ec7f95   hello-world           "/hello"                 51 minutes ago      Exited (0) 51 minutes ago                                                                                                                    nice_tereshkova
89859811b5a9   6c3c2a225947          "docker-entrypoint.s…"   54 minutes ago      Exited (130) 53 minutes ago                                                                                                                  infallible_goldwasser
c6a72430eca4   hello-world           "/hello"                 About an hour ago   Exited (0) About an hour ago                                                                                                                 kind_ritchie
35ea51a7b1af   rabbitmq:management   "docker-entrypoint.s…"   3 days ago          Up 52 minutes                  4369/tcp, 5671/tcp, 15671-15672/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:5674->5672/tcp                       rabbit3
94a448ec61d4   rabbitmq:management   "docker-entrypoint.s…"   3 days ago          Up 52 minutes                  4369/tcp, 5671/tcp, 15671-15672/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:5673->5672/tcp                       rabbit2
fae2e1948d3a   rabbitmq:management   "docker-entrypoint.s…"   3 days ago          Up 52 minutes                  4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp   rabbit1
6b33462fa5c5   rabbitmq:management   "docker-entrypoint.s…"   6 days ago          Exited (128) 6 days ago                                                                                                                      myrabbit
f6c0a19b1ed8   hello-world           "/hello"                 4 weeks ago         Exited (0) 4 weeks ago                                                                                                                       busy_newton

# 当前运行的docker容器
[root@iZwz93j24hpsj03xcor6ieZ /]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED      STATUS          PORTS                                                                                                         NAMES
35ea51a7b1af   rabbitmq:management   "docker-entrypoint.s…"   3 days ago   Up 53 minutes   4369/tcp, 5671/tcp, 15671-15672/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:5674->5672/tcp                       rabbit3
94a448ec61d4   rabbitmq:management   "docker-entrypoint.s…"   3 days ago   Up 53 minutes   4369/tcp, 5671/tcp, 15671-15672/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:5673->5672/tcp                       rabbit2
fae2e1948d3a   rabbitmq:management   "docker-entrypoint.s…"   3 days ago   Up 53 minutes   4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp   rabbit1
退出容器
exit  	# 直接容器停止并退出
Ctrl + P +Q 	# 容器退出不停止
删除容器
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           #强制停止当前容器

常用其他命令 查看日志
[root@iZwz93j24hpsj03xcor6ieZ ~]# docker logs --help

Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
  -n, --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps
      --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
    
    
常用:
docker logs -tf 容器id
docker logs --tail number 容器id #num为要显示的日志条数   
查看进程信息
[root@iZwz93j24hpsj03xcor6ieZ ~]# docker top fae2e1948d3a
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
polkitd             9068                9049                0                   15:20               ?                   00:00:00            /bin/sh /opt/rabbitmq/sbin/rabbitmq-server
polkitd             9104                9068                0                   15:20               ?                   00:02:08            /usr/local/lib/erlang/erts-12.2/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sbwtdio none -B i -- -root /usr/local/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa -noshell -noinput -s rabbit boot -boot start_sasl -syslog logger [] -syslog syslog_error_logger false
polkitd             9111                9104                0                   15:20               ?                   00:00:00            erl_child_setup 1048576
polkitd             9136                9068                0                   15:20               ?                   00:00:00            /usr/local/lib/erlang/erts-12.2/bin/epmd -daemon
polkitd             9156                9111                0                   15:20               ?                   00:00:00            inet_gethost 4
polkitd             9157                9156                0                   15:20               ?                   00:00:00            inet_gethost 4
查看镜像的元数据
[root@iZwz93j24hpsj03xcor6ieZ ~]# docker inspect --help

Usage:  docker inspect [OPTIONS] NAME|ID [NAME|ID...]

Return low-level information on Docker objects

Options:
  -f, --format string   Format the output using the given Go template
  -s, --size            Display total file sizes if the type is container
      --type string     Return JSON for specified type
进入当前正在运行的容器

第一种方式:

# docker exec -it 容器id  bashshell
[root@iZwz99sm8v95sckz8bd2c4Z ~]# docker exec -it c703b5b1911f /bin/bash
[root@c703b5b1911f /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@c703b5b1911f /]# ps -ef      
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 03:31 ?        00:00:00 /bin/sh -c while true;do echo hi;sleep 5;done
root       279     0  0 03:54 pts/0    00:00:00 /bin/bash
root       315     1  0 03:56 ?        00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 5
root       316   279  0 03:56 pts/0    00:00:00 ps -ef

第二种方式:

[root@iZwz93j24hpsj03xcor6ieZ ~]# docker attach fae2e1948d3a

两种方式的区别:

docker exec 进入容器后开启一个新的终端,可以在里面操作

docker attach 进入容器正在执行的终端,不会启动新的进程

从容器拷贝文件到主机

docker cp 容器id:容器内路径 目的主机路径

# 进入容器
[root@iZwz93j24hpsj03xcor6ieZ ~]# docker attach ba0fa6189638
[root@ba0fa6189638 /]# cd /home
[root@ba0fa6189638 home]# ls
# 新建文件
[root@ba0fa6189638 home]# touch test.java
# ctrl + q + p
# 拷贝容器文件到主机
[root@iZwz93j24hpsj03xcor6ieZ ~]# docker cp ba0fa6189638:/home/test.java /home
[root@iZwz93j24hpsj03xcor6ieZ ~]# cd /home
[root@iZwz93j24hpsj03xcor6ieZ home]# ls
environment  test.java  www

作业练习 Docker安装Nginx

Docker 安装Nginx

# 1、搜索镜像   建议去docker hub 搜索
[root@iZwz93j24hpsj03xcor6ieZ home]# docker search nginx
NAME                                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                                             Official build of Nginx.
# 2、拉取
[root@iZwz93j24hpsj03xcor6ieZ home]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
# 3、启动容器      -p 映射端口    宿主机端口:容器内部端口
# --name 给容器命名
[root@iZwz93j24hpsj03xcor6ieZ home]# docker run -d --name nginx01 -p 3344:80 nginx
7ec0408fc0e86000fc73639c691e7e294d8434131641af6879f836dbb5ce1f3c
# 进入容器
[root@iZwz93j24hpsj03xcor6ieZ home]# docker exec -it 7ec0408fc0e8 /bin/bash
root@7ec0408fc0e8:/# ls
bin   dev		   docker-entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint.d  etc			 lib   media  opt  root  sbin  sys  usr

端口暴露:

思考问题∶我们每次改动nginx配置文件,都需要进入容器内部?十分的麻烦,我要是可以在容器外部提供一个映射路径,达到在容器修改文件名,容器内部就可以自动修改?-v数据卷!

Docker 安装一个tomcat

Docker 安装一个tomcat

# 官方的使用
$ docker run -it --rm tomcat:9.0

# 我们之前的使用都是后台使用,停止了容器之后,容器可以通过docker ps -a 查到
# $ docker run -it --rm tomcat:9.0 这种方法用来测试  用完就删除

# 下载并启动
docker pull tomcat:9.0

# 启动运行
docker run -d -p 3355:8080 --name tomcat01 tomcat

# 访问没问题
# 进入容器发现命令少了,webapps里面啥都没有。  	阿里云的原因。默认是最小的镜像,所有不必要的全部剔除
# 保证最小可运行的环境
[root@iZwz93j24hpsj03xcor6ieZ home]# docker exec -it 7cbbe5e22e45 /bin/bash
Docker安装ES+Kibana

Docker安装ES+Kibana

## es 暴露的端口很多!   es 十分耗内存   es的数据一般需要放置到安全目录 ! 挂载  
# --net somenetwork   网络配置

# 安装并运行
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:8.1.3

# docker stats 查看doker cpu 状态
# 修改es配置文件
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:8.1.3
可视化(图形化管理工具Portaniner安装)

Portaniner是Docker的图形化管理工具,类似的工具还有Rancher(CI/CD再用)

下载运行Portaniner镜像并运行,设置本机映射端口为8088

docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/939124.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号