首页 > 其他分享 >docker常用命令

docker常用命令

时间:2023-02-27 11:55:19浏览次数:35  
标签:容器 -- 宿主机 nginx 常用命令 镜像 docker

一、镜像管理命令

1.搜索镜像,建议直接在docker hub官网搜索会比较直观看到版本

docker search  镜像名称

 

 

2.下载镜像

docker pull 镜像名:版本号,如果要下载最新的就是docker pull 镜像名:latest,或者直接docker pull 镜像名

4.列出系统下载的所有镜像

docker images

3.删除镜像:如果镜像有创建关联的容器则会提示要先删除容器之后才能删除镜像

docker rmi  镜像ID  或者  docker rmi  镜像名:版本号

5.查看镜像或者容器的详细信息

      1)docker inspect 镜像ID或者docker inspect 镜像名:版本号

        2)docker inspect 容器ID

二、容器管理命令

1.docker create :创建容器但不启动它

格式:docker create [OPTIONS]  IMAGE   [COMMAND] [ARG...]

OPTIONS:可以通过命令docker create --help查看他的可使用项

IMAGE :可以是(镜像名称:版本)或者镜像ID

常用OPTIONS说明:

  • --name :给容器起一个新名字,为容器指定一个名称,格式为:--name  容器新名称
  • -P: 随机端口映射,容器内部端口映射到宿主机的随机端口

  • -p: 指定端口映射,格式为:宿主机端口 : 容器端口

  • -e : 配置环境变量;格式为: -e  变量名=变量值

  • -v:主机与容器的目录映射关系,格式为:-v  宿主机目录 : 容器目录,这样容器里面的文件会写到宿主机一份,容器被删除了,宿主机还保留之前运行的文件
docker create -P  nginx:latest    #使用镜像nginx:latest创建一个容器,并将容器的80端口映射到主机随机端口
docker create --name mynginx  nginx:latest   #使用镜像nginx:latest创建一个容器并重命名为mynginx
docker create -p 80:80 -v /data:/data -d nginx:latest  #使用镜像nginx:latest创建一个容器,并将容器的80端口映射到宿主机的80端口,宿主机的目录 /data 映射到容器的 /data
docker create --name mysqld -e MYSQL_ROOT_PASSWORD=ROOT -p 3306:3306 mysql:5.7-debian #使用镜像mysql:5.7-debian创建一个容器并取名为mysqld,设置环境变量MYSQL_ROOT_PASSWORD的值为root,并将该容器的3306端口映射到宿主机的3306端口

2.docker run:创建并启动容器

格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS:可以通过命令docker run--help查看他的可使用项

IMAGE :可以是(镜像名称:版本)或者镜像ID

常用OPTIONS说明:

  • --name="nginx":给容器起一个新名字,为容器指定一个名称
  • -i: 以交互模式运行容器,通常与 -t 同时使用;

  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • -P: 随机端口映射,容器内部端口随机映射到主机的端口

  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主机一致;

  • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主机一致;

  • -d:后台运行容器,并返回容器ID
  • -h "mars": 指定容器的hostname;

  • -e username="ritchie": 设置环境变量;

  • --env-file=[]: 从指定文件读入环境变量;

  • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

  • -m :设置容器使用内存最大值;

  • --network="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container:<name|id> 四种类型;默认是桥接类型,host表示使用宿主机的网络,,

      • 默认是bridge桥接类型,也就是容器会有一个自己的网卡如10.*.*.*,然后经过桥转换成与宿主机的网卡,如192.168.*.*
      • host:表示使用宿主机的网络,一旦设置的是host网络连接类型,则不需要参数-p指定端口映射,用host这种方式容器就没有多余的虚拟网络,也就是容器自己没有网卡,直接用的宿主机的网卡
      • none:表示容器使用自己的网络,也就是用的容器自己的网卡
      • container:<name|id>:表示使用某个容器的网络,共享端口和IP
  • --link=[]: 添加链接到另一个容器;

  • --expose=[]: 开放一个端口或一组端口;

  • --volume , -v: 主机与容器的目录映射关系,格式为:-v  宿主机目录 : 容器目录

$ docker run --name mysqld -e MYSQL_ROOT_PASSWORD=root -p 33306:3306 -d mysql:5.7    #使用镜像mysql:5.7创建容器并命名为mysqld,设置环境变量MYSQL_ROOT_PASSWORD等于root,同时指定3306端口映射并后台运行该容器
$ docker run -it nginx:latest /bin/bash  #使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令
$ docker run -p 80:80 -v /data:/data -d nginx:latest #使用镜像 nginx:latest创建容器并后台启动,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data
$ docker run -P -d nginx:latest #使用镜像nginx:latest创建容器并后台运行容器,同时将容器的80端口映射到主机随机端口
$ docker run --name mynginx -d nginx:latest     #使用docker镜像nginx:latest创建一个名称为mynginx的容器并后台启动该容器

3.docker container ls:查看正在运行的容器,也可以用docker container ps,是一样的

docker container ls -a:查看所有创建的容器,包括没有运行的

具体可选参数可通过docker container ls --help进行查看,如下图

4.docker exec:使用正在运行的容器,进入容器并在运行的容器中执行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS说明:

  • -d :后台运连接容器

  • -i : 持续连接容器

  • -t :分配一个伪终端

$ docker exec -it  mynginx /bin/bash     #在容器 mynginx 中开启一个交互模式的终端

$ docker ps -a #查看所有在运行的容器
...
9df70f9a0714        openjdk             "/usercode/script.sh…" 
...
$ docker exec -it 9df70f9a0714 /bin/bash     #通过容器ID进入容器并打开一个终端
$ docker exec -it mynginx /bin/sh /root/runoob.sh   #在容器 mynginx 中以交互模式执行容器内 /root

5.docker start :启动容器

docker start myrunoob   #启动名称为murunoob的容器,docker start后面可以跟容器名称或者ID

6.docker stop:关闭容器

docker stop myrunoob     #关闭murunoob容器,docker stop后面可以跟容器名称或者ID

7.docker rm :删除容器

docker rm myrunoob   #删除容器myrunoob,除了用容器名称也可以用ID,注意:要删除的容器必须是关闭状态

8.docker logs:查看容器的日志

docker logs [OPTIONS] CONTAINER

OPTIONS说明:

  • -f : 实时跟踪日志输出,持续输出日志

  • --since :显示某个开始时间的所有日志

  • --until:显示某个时间以前的日志
  • -t : 显示时间戳

  • --tail :仅列出最新N条容器日志

$ docker logs -f mynginx    #跟踪查看mynginx容器日志输出
$ docker logs --since="2016-07-01" --tail=10 mynginx  #查看mynginx容器从2016年7月1号后的最新10条日志

7.docker top:查看容器中运行的进程信息

$ docker top mysqld    #查看mysqld容器中运行的进程
UID    PID    PPID    C      STIME   TTY  TIME       CMD
999    40347  40331   18     00:58   ?    00:00:02   mysqld

 8.docker cp :复制容器的数据到宿主机

 docker cp 容器ID:容器内路径  宿主机路径

 docker cp  宿主机路径  容器ID:容器内路径

$ docker cp mysqld:/etc/mysql  ~/tmp/config    #复制容器mysqld中/etc/mysql数据到宿主机下的~/tmp/config
$ docker cp ./a.txt mysqld:/tmp/ #复制宿主机当前目录下的a.txt文件到容器mysqld下面的/tmp/ 文件夹下

标签:容器,--,宿主机,nginx,常用命令,镜像,docker
From: https://www.cnblogs.com/xnancy/p/17141682.html

相关文章

  • ubuntu安装docker
    一、操作系统版本:二、安装步骤:1.更新软件包索引,并且安装必要的依赖软件sudoaptupdate#更新软件包索引sudoaptinstallapt-transport-httpsca-certificatesc......
  • docker安装mysql
    查看mysql镜像版本https://registry.hub.docker.com/_/mysql/tags指定版本号下载sudodockerpullmysql:5.7......
  • 通俗易懂的Docker
    镜像(Image)Docker的官方logo是鲸鱼背上驮着一堆集装箱,镜像就相当于是一个个不同用途的空集装箱,A箱标着用来装水果,B箱标着蔬菜,C箱标着海鲜……各种完全不同的东西,由......
  • 通过Zabbix Docker配置HTTPS访问系统
    链接如何通过ZabbixDocker配置HTTPS访问系统?===================================================================================================================......
  • Linux安装Docker
    参考:https://www.runoob.com/docker/centos-docker-install.html CentOSDocker安装Docker支持以下的64位CentOS版本:CentOS7CentOS8更高版本...使用官......
  • 老版本 docker 磁盘占用清理
    对于1.13版本之前的docker需要手动清理无用镜像、容器、数据卷清理命令dockerrmi[image]dockerimagerm[image]支持的子命令-f强制删除镜像,即便有容器引用......
  • how to install docker for windows —— check windows, OS, CPU, Virtualization r
      确保最新的windows版本    对比docker的安装条件       PSC:\Users\PXi>Get-ComputerInfoWindowsBuildLabEx......
  • docker部署zabbix 6.2.7
    zabbix6.2.7dockerpullzabbix/zabbix-web-nginx-mysql:centos-6.2.7dockerpullzabbix/zabbix-server-mysql:centos-6.2.7dockerpullzabbix/zabbix-agent:centos-......
  • docker for nginx run
    PSC:\Users\[user]>dockerpullnginx:latestlatest:Pullingfromlibrary/nginxbb263680fed1:Alreadyexistsa0bc35e70773:Pullcomplete077b9569ff86:Pullco......
  • 基于Docker部署Dubbo+Nacos服务
    一、说明本文介绍基于Docker部署一套Dubbo+Nacos的微服务环境,并解决容器里的IP及端口的访问问题。基于上文《基于jib-maven-plugin快速构建微服务docker镜像......