【Docker】安装和基本使用 容器及镜像的相关命令

一、关于Docker

Docker是一个开源的应用容器引擎,可以将应用软件和其依赖打包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。

Docker类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装箱之间没有影响。也就是说,Docker平台就是一个软件集装箱化平台,这就意味着我们自己可以构建应用程序,将其依赖关系一起打包到一个容器中,然后这容器就很容易运送到其他的机器上进行运行,而且非常易于装载、复制、移除,非常适合软件弹性架构。

二、Docker安装卸载

1、Docker安装

官方文档地址

Get Docker | Docker Docs

先配置国内镜像:
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装
yum install docker-ce docker-ce-cli containerd.io

2、Docker卸载

yum list installed | grep docker
yum -y remove containerd.io.x86_64
yum -y remove docker-ce-cli.x86_64
rm -rf /var/lib/docker

三、镜像(image)

镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含了运行某个软件所需的所有内容,包括代码、运行时库、环境变量和配置文件等

所有的应用和环境直接打包成镜像,就可以直接运行。

1、镜像相关命令

  • docker image ls ==docker images  #列出本地已有的镜像 
  • docker pull ubuntu:14.04  #从Docker Hub上拉取镜像 https://hub.docker.com/
  • docker image rm [镜像名/ID] === docker rmi  [镜像名/ID]  #删除镜像
  • docker image rm -f [镜像名]  === rmi   #强制删除镜像
  • docker inspect [镜像名]   #查看镜像详细信息 

2、其他

镜像名 命名规则:[repository]: tag   比如 tomcat:8.5.40

如果docker build没有指定tag,会使用默认值latest,tag用来描述版本信息

默认先从docker内部找,找不到从远程Docker Hub上拉取镜像https://hub.docker.com/

四、容器(container)

镜像的运行实例。(类比面向对象中:类与对象)

通过镜像(image)创建,一个镜像可以运行多个容器,且容器之间是没有关系的;镜像是静止的,通过容器才能跑起来

1、容器相关命令

运行

docker run [镜像名]  #运行容器,本地不存在该镜像则会自动从Docker Hub上拉取下来

查看      

docker container ls === docker ps  #列出当前正在运行的容器,container ls可以换成ps

docker container ls -a === docker ps -a   #列出当前正在运行及退出的容器

停止
docker container stop [容器Id]   #停止容器,,,,container可以不加

重启
docker container restart [容器Id]  #重启容器,,,,container可以不加

删除
docker container rm [容器Id]  === docker rm    #删除掉已退出的容器,,,,container可以不加
docker container rm -f [容器Id] === docker rm -f    #删除一个正在运行的容器,,,,container可以不加

运行
docker run -it [镜像名] /bin/bash #以交互式运行容器

查看容器日志
docker logs 容器ID

进入到容器的内部(容器已经跑起来,再进入)

docker exec -it [容器ID] /bin/bash

【其他命令参数补充】

docker run -p 8080:8080 -d tomcat:8.5.40 #将容器运行在后台
-p: 表示指定端口
-d:表示后台运行
docker run --name tomcat -p 8080:8080 -d tomcat:8.5.40 #给容器取名字

docker cp [本地文件路径] [容器ID]:[容器内部路径] #本机(宿主机)向docker容器传输文件
docker cp [容器ID]:[容器内部路径] [本地文件路径] #docker容器向本机(宿主机)传输文件

docker rm -f $(docker ps -a)------把查出来的所有id都作为参数传给删除的参数:删除所有的容器
docker rmi -f $(docker ps -a)------删除所有镜像

2、详细说明

  • -it ——以交互模式打开终端,执行bash,其结果就是打开了一个bash终端进入到容器内部后可以像在普通Linux环境执行命令

  • 执行exit退出容器,回到docker host

3、比较 run 和 exec

docker run -it [镜像名] /bin/bash #以交互式运行容器------原来没有在跑的容器,直接跑起来一个并进去;

退出后容器停止了,没有日志等活动的页面,docker检测到没有任何效果变化,会自动把容器停掉

【Docker】安装和基本使用 容器及镜像的相关命令_第1张图片

docker exec -it [容器ID] /bin/bash----进入到容器的内部,容器已经跑起来,再进入

退出后容器没有停止,因为原来就在运行,进入了再出来不会影响原本运行的容器

五、名词解释:

  • Docker主机(Docker Host):宿主机,Docker服务器所在的主机

  • 服务器(Docker daemon):在后台运行,负责创建、运行、监控容器,构建、存储镜像。软件,API,接受命令行的命令

  • 仓库(repository):用于存储镜像的仓库,分为私有仓库和公有仓库(Docker hub)。

  • docker.sock 是docker client 和docker daemon 在localhost进行通信的socket文件。

六、docker run的背后

【Docker】安装和基本使用 容器及镜像的相关命令_第2张图片

深入学习docker,可以学习官方文档 https://docs.docker.com/get-docker/

你可能感兴趣的:(docker,docker,容器,运维)