docker入门教程与常见命令

本文详细介绍了Docker的基础操作,包括镜像与容器的概念、查看容器与镜像、拉取与删除镜像、容器的运行与管理、端口映射、文件复制以及挂载。此外,还讲解了容器的导出与导入、重命名以及Dockerrun与Dockerstart的区别,为Docker初学者提供了全面的操作教程。
摘要由CSDN通过智能技术生成

一、镜像与容器概念

镜像:通俗来说就是安装包,比如:redis镜像、mysql镜像,就是redis安装包、mysql安装包。

容器:运行起来的镜像称为容器,就像一个虚拟机一样,我开了一个虚拟机把redis镜像放里面运行,这就是一个运行了redis的容器。可以开多个容器每个容器安装不同的镜像,你也可以把每个容器进行关闭、删除重启等操作。你也可以制作自己的镜像发放给别人使用,比如:你在Ubuntu系统里安装了redis+mysql以及一系列的配置,你把它打包成一个镜像发给别人,别人直接就可以使用,不需要再安装Ubuntu系、redis、mysql以及一系列配置,非常方便。

二、查看容器

查看运行中的容器:

docker ps

查看所有的容器(包括未运行的):

docker ps -a

三、镜像查看、删除

查看所有的镜像:

docker images

删除某一镜像:

docker rmi 镜像id

四、拉取镜像

拉取ubuntu为例

docker pull ubuntu

五、容器运行镜像

1. -it为交互式启动,exit 退出后容器会被关闭

docker run -it ubuntu /bin/bash

2. -d为后台启动,exit 退出后容器不会关闭

docker run -dit ubuntu /bin/bash

退出容器后再次进入容器:使用docker ps查看当前运行的容器id,然后使用docker exex 来进入后台运行的容器,例如容器id是4f1a290e927e

docker exec -it 4f1a290e927e /bin/bash

六、容器启动、关闭、重启、删除

启动被关闭的容器:

(docker ps -a显示的列表里要有该容器id,否则会报错,启动不了)

docker start 容器id

关闭启动的容器:

docker stop 容器id

重启容器:

docker restart 容器id

删除容器:

docker rm -f 容器id

七、docker run与docker start的区别

docker run 用于产生一个新的容器并运行;

docker start 用于运行之前被停止的容器;

例如 :

docker run -dit ubuntu /bin/bash 命令执行两次会得到两个容器,每个容器里都运行着一个ubuntu 。

在两个容器中分别建立文件A和B,然后关闭这两个容器。接下来再使用docker start 命令来分别启动两个容器,会看到两个容器中的文件A和B依然存在。

八、容器导出、导入

  • 导出:

    docker export 容器id -o 导出为的文件
    

    例如:

    docker export 4f1a290e927e -o ubuntu.tar
    
  • 导入

    docker import 导出为的文件 镜像名称:[tag名称]
    

    例如:

    1.导入ubuntu.tar到镜像仓库,镜像的名称为myubuntu

    docker import ubuntu.tar myubuntu
    

    2.导入ubuntu.tar到镜像仓库,镜像的名称为myubuntu1,tag为v1

    docker import ubuntu.tar myubuntu1:v1
    

    使用docker images查看到镜像仓库如下:

    REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
    myubuntu1     v1        b956e7df05b4   5 seconds ago    77.8MB
    myubuntu      latest    3619e5cf1b77   47 seconds ago   77.8MB
    

    九、容器重命名

    容器重命名的好处是不用容器id来进行操作,这样比较方便和直观的操作容器。

    例如,给运行ubuntu时给容器起个名字myubuntu1:

    (注意,容器的名称s是唯一的,如果已经有一个容器已经叫myubuntu1了,则不能再重命名为myubuntu1)

    docker run -dit --name=myubuntu1 ubuntu /bin/bash
    

    使用docker ps 查看:

    CONTAINER ID   IMAGE     COMMAND       CREATED              STATUS              PORTS     NAMES
    3cd6c5413578   ubuntu    "/bin/bash"   About a minute ago   Up About a minute             myubuntu1
    

    现在就可以使用myubuntu1这个名字来关闭、重启或者删除等命令来操作容器,而不必使用容器id来操作。

    例如,停止该容器:

    docker stop myubuntu1
    

    十、容器端口映射

    • -P 随机分配主机的端口给容器

      docker run -d -P --name=mynginx1 nginx
      

      查看端口:

        docker port mynginx1
      
        80/tcp -> 0.0.0.0:49154
        80/tcp -> :::49154
      

      即容器内部的80端口被随机映射到了宿主机的49154端口

    • -p 指定端口主机的端口给容器

      (-p 80:80 端口进行映射,将本地 80 端口映射到容器内部的 80 端口)

       docker run -d -p 80:80 --name=mynginx2 nginx
      

      查看端口:

      docker port mynginx1
      
      80/tcp -> 0.0.0.0:80
      80/tcp -> :::80
      

      即容器内部的80端口被映射到了宿主机的80端口

    十一、容器与主机间文件复制

    • 从容器复制到主机

      将 mynginx2 这个容器的 /etc/nginx/nginx.conf 文件复制到主机的 /usr/local/ 目录

      docker cp mynginx2:/etc/nginx/nginx.conf /usr/local/
      
    • 从主机复制到容器

      将 /usr/local/aaa.txt 这个文件从主机复制到容器的 /etc/nginx 目录(若容器里不存在这个目录,会自动创建)

      docker cp /usr/local/aaa.txt mynginx2:/etc/nginx/
      

    说明:

    1.复制操作可以是正在运行或已停止的容器;

    2.若主机没有指定具体的路径则表示当前目录

    十二、文件挂载

    文件挂载就相当于容器和主机共享文件,对于数据的持久化保存,或者一些配置文件希望放到容器外可以采用文件挂载。

    比如:容器里的应用产生的日志希望同步输出到容器外可以采用文件挂载、通过文件挂载把nginx的配置文件放到主机这样就不用每次进到容器里修改配置文件。

    • -v 容器外部文件夹路径:容器内部文件夹路径

      docker run -d --name=mynginx3 -p 80:80 -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx
      

参考:
docker-curriculum
Docker overview
Docker run reference

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值