docker容器操作基础命令

启动容器

docker run 可以启动容器,进入到容器,并随机生成容器ID和名称

运行docker 的 alpine
在这里插入图片描述

docker ps -a
在这里插入图片描述

启动容器的用法

帮助: man docker-run
命令格式:

docker run [选项] [镜像名] [shell命令] [参数] #选项:
-i, --interactive Keep STDIN open even if not attached,通常和-t一起使用
-t, --tty 分配pseudo-TTY,通常和-i一起使用,注意对应的容器必须运行shell才支持进

-d, --detach Run container in background and print container ID,台后运行,
默认前台
–name string Assign a name to the container
–h, --hostname string Container host name
–rm Automatically remove the container when it exits
-p, --publish list Publish a container’s port(s) to the host
-P, --publish-all Publish all exposed ports to random ports
–dns list Set custom DNS servers
–entrypoint string Overwrite the default ENTRYPOINT of the image
–restart policy
–privileged Give extended privileges to container
-e, --env=[] Set environment variables
–env-file=[] Read in a line delimited file of environment variables

注意: 容器启动后,如果容器内没有前台运行的进程,将自动退出停止

从容器内退出,并停止容器

exit

从容器内退出,且容器不停止

同时按三个键,ctrl+p+q

指定容器名称

#每个容器的名称要唯一
[root@sre7 ~]# docker run --name a1 alpine
[root@sre7 ~]# docker ps -a
CONTAINER ID  IMAGE                            COMMAND     CREATED        STATUS                    PORTS       NAMES
17014abad8d9  docker.io/library/alpine:latest  /bin/sh     3 seconds ago  Exited (0) 3 seconds ago              a1

运行交互式容器并退出

[root@sre7 ~]# docker run -it docker.io/library/alpine sh
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
/ # exit

在这里插入图片描述

设置容器内的主机名称

在这里插入图片描述

开机自动运行容器

默认容器不会开机自动启动
在这里插入图片描述

设置容器开机自动启动

[root@sre7 ~]# docker run -d --name mysql --restart=always -p 3306:3306 mysql
[root@sre7 ~]# reboot
[root@sre7 ~]# docker ps
CONTAINER ID  IMAGE                           COMMAND     CREATED        STATUS                     PORTS                   NAMES
3af6667a3e3c  docker.io/library/mysql:latest  mysqld      3 seconds ago  Up Less than a second ago  0.0.0.0:3306->3306/tcp  mysql

查看容器信息

显示当前存在容器

格式:
docker ps [OPTIONS]
docker container ls [OPTIONS]
选项:
-a, --all Show all containers (default shows just running)
-q, --quiet Only display numeric IDs
-s, --size Display total file sizes
-f, --filter filter Filter output based on conditions provided
-l, --latest Show the latest created container (includes all states)
-n, --last int Show n last created containers (includes all states)
(default -1)

基础操作汇总

#显示运行的容器
docker ps
#显示全部容器,包括退出状态的容器
docker ps -a
#只显示容器ID
docker ps -a -q
#显示容器大小
docker ps -a -s
#查看退出状态的容器
docker ps -f 'status=exited'

查看容器资源使用情况

docker stats [OPTIONS] [CONTAINER…]
Display a live stream of container(s) resource usage statistics
Options:
-a, --all Show all containers (default shows just running)
–format string Pretty-print images using a Go template
–no-stream Disable streaming stats and only pull the first result
–no-trunc Do not truncate output

在这里插入图片描述

查看容器内的详细信息

docker inspect 可以查看docker各种对象的详细信息,包括:镜像,容器,网络等

docker inspect [OPTIONS] NAME|ID [NAME|ID…]
Options:
-f, --format string Format the output using the given Go template
-s, --size Display total file sizes if the type is container

示例:
在这里插入图片描述

删除容器

docker rm 可以删除容器,即使容器正在运行当中,也可以被强制删除掉

格式:
docker rm [OPTIONS] CONTAINER [CONTAINER…]
docker container rm [OPTIONS] CONTAINER [CONTAINER…]
#选项:
-f, --force Force the removal of a running container (uses SIGKILL)
-v, --volumes Remove the volumes associated with the container
#删除停止的容器
docker container prune [OPTIONS]
Options:
–filter filter Provide filter values (e.g. ‘until=’)
-f, --force Do not prompt for confirmation

示例:
加上 -f 是强制删除,即使正在运行中的容器也会被删除
在这里插入图片描述
删除所有容器

docker rm -f `docker ps -a -q`
#或者
docker ps -aq | xargs doker rm -f

删除指定状态的容器

docker rm `docker ps -qf status=exited`

删除所有停止状态的容器

docker container prune -f

容器的启动和停止

docker start|stop|restart|pause|unpause 容器ID

批量正常启动或关闭所有容器

docker start $(docker ps -a -q)  
docker stop $(docker ps -a -q)  

给正在运行的容器发信号

格式:
docker kill [OPTIONS] CONTAINER [CONTAINER…]
#选项:
-s, --signal string Signal to send to the container (default “KILL”)

强制关闭所有运行中的容器
在这里插入图片描述

进入正在运行中的容器

使用attach命令
docker attach 容器名,attach 类似于vnc,操作会在同一个容器的多个会话界面同步显示,所有使用此
方式进入容器的操作都是同步显示的,且使用exit退出后容器自动关闭,不推荐使用,需要进入到有shell环境的容器

格式:
docker attach [OPTIONS] CONTAINER

使用exec命令
在运行中的容器启动新进程,可以执行单次命令,以及进入容器
测试环境使用此方式,使用exit退出,但容器还在运行,此为推荐方式

#格式:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
常用选项:  
-d, --detach				Detached mode: run command in the background
-e, --env list             Set environment variables
-i, --interactive         Keep STDIN open even if not attached
-t, --tty                 Allocate a pseudo-TTY
#常见用法
docker exec -it 容器ID sh|bash

在这里插入图片描述

暴露所有容器端口

容器启动后,默认处于预定义的NAT网络中,所以外部网络的主机无法直接访问容器中网络服务
docker run -P 可以将事先容器预定义的所有端口映射宿主机的网卡的随机端口,默认从32768开始
使用随机端口 时,当停止容器后再启动可能会导致端口发生变化

-P , --publish-all= true | false默认为false
#示例:
docker run -P docker.io/nginx  #映射容器所有暴露端口至随机本地端口

docker port 可以查看容器的端口映射关系

#格式:
docker port CONTAINER [PRIVATE_PORT[/PROTO]]

在这里插入图片描述

端口映射的本质就是利用NAT技术实现的

查看容器的日志

docker logs 可以查看容器中运行的进程在控制台输出的日志信息

格式:
docker logs [OPTIONS] CONTAINER
选项:
--details       Show extra details provided to logs
-f, --follow     Follow log output
--since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37) or 
relative (e.g. 42m for   42 minutes)
--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:37) or 
relative (e.g. 42m     for 42 minutes)

查看日志容器
在这里插入图片描述

显示时间

在这里插入图片描述

传递运行命令

容器需要有一个前台运行的进程才能保持容器的运行,通过传递运行参数是一种方式,另外也可以在构建镜像的时候指定容器启动时运行的前台命令

容器里的PID为1的守护进程的实现方式

  • 服务类: 如: Nginx,Tomcat,Apache ,但服务不能停
  • 命令类: 如: tail -f /etc/hosts ,主要用于测试环境,注意: 不要tail -f <服务访问日志> 会产生不
    必要的磁盘IO

容器内部的hosts文件

容器会自动将容器的ID加入自已的/etc/hosts文件中,并解析成容器的IP

在这里插入图片描述

指定DNS服务器

容器的dns服务器,默认采用宿主机的dns 地址,可以用下面方式指定其它的DNS地址

  • 将dns地址配置在宿主机
  • 在容器启动时加选项 --dns=x.x.x.x
  • 在/etc/docker/daemon.json 文件中指定

在这里插入图片描述

容器内和宿主机之间复制文件

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
Options:
  -a, --archive       Archive mode (copy all uid/gid information)
  -L, --follow-link   Always follow symbol link in SRC_PATH
docker cp test.sh b8f892fad40a:/etc

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值