Docker命令

Docker容器

  • Docker简介
  • Docker架构
  • 配置Docker镜像加速器
  • Docker命令
    • Docker服务相关命令
    • Docker镜像相关命令
    • Docker容器相关命令

Docker简介

Docker是一个开源的应用容器引擎。
Docker诞生于2013年初,基于Go语言实现,dotCloud公司出品(后改名为Docker Inc)。
Docker可以让开发者将他们的应用和依赖包打包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上。
Docker容器完全使用沙箱机制,每一个容器都是相互隔离的,互不影响。
Docker容器的性能开销极低。
Docker从17.03版本之后分为CE(Community Edition,社区版)和EE(Enterprise Edition,企业版),CE是免费的,EE是收费的。
总之,Docker是一种容器技术,能够解决软件跨环境迁移的问题。

Docker可运行在Mac、Windows、CentOS、Ubuntu等操作系统上,官网(https://www.docker.com)。

CentOS安装Docker:

# 将yum包更新到最新
yum update

# 安装相关的软件包,yum-utils提供了yum-config-manager功能,另两个与devicemapper驱动依赖有关
yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装Docker,出现输入的地方都按y
yum install -y docker-ce

# 查看Docker版本,验证其是否安装成功
docker -v

Docker架构

镜像(Image): Docker镜像就相当于是一个root文件系统,比如ubuntu:16.04官方镜像就包含了完整的一套root文件系统。

容器(Container): 镜像和容器的关系,就如同面向对象程序设计中类和对象的关系,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除等。

仓库(Repository): 仓库可看作是一个代码控制中心,用来保存镜像。

配置Docker镜像加速器

通常情况下,从docker hub(https://hub.docker.com/)上下载Docker镜像,速度会比较慢,因此可以配置相应的镜像加速器。

USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)

阿里云:百度搜索阿里云 -> 打开阿里云官方网站 -> 登录 -> 点击控制台 -> 点击产品与服务 -> 搜索镜像 -> 点击容器镜像服务 -> 点击镜像加速器
阿里云显示了加速器地址和相关的配置流程,根据说明操作即可。

Docker命令

Docker服务相关命令

启动Docker服务

sudo systemctl start docker

停止Docker服务

sudo systemctl stop docker

重启Docker服务

sudo systemctl restart docker

查看Docker服务状态

sudo systemctl status docker

开机自动启动Docker服务

sudo systemctl enable docker

Docker镜像相关命令

查看镜像

docker images  # 查看本地所有的镜像

搜索镜像

docker search <镜像名称或关键字>  # 从远程仓库中搜索需要的镜像

docker search redis  # 在远程仓库中搜索redis镜像
docker search ubuntu  # 在远程仓库中搜索ubuntu镜像

# 搜索的时候显示的镜像列表中不显示镜像版本,如果想知道有没有特定版本的镜像,可以到官网(hub.docker.com)上查看

拉取镜像

docker pull <镜像名称>  # 从远程仓库中拉取需要的镜像

docker pull redis  # 从远程仓库中拉取默认版本的redis镜像,Tag为latest
docker pull ubuntu:18.04  # 从远程仓库中拉取18.04版本的ubuntu镜像,Tag为18.04

删除镜像

docker rmi <镜像名称>  # 通过镜像名称来删除
docker rmi <镜像ID>  # 通过镜像ID来删除
docker rmi -f <镜像名称/镜像ID>  # 使用-f参数强制删除正在使用的镜像

docker rmi redis:latest  # 删除latest版本的redis镜像

删除全部镜像

docker rmi `docker images -q`  # 删除全部镜像

docker images -q  # 显示所有镜像的ID

Docker容器相关命令

查看容器

docker ps  # 查看正在运行的容器
docker ps -a  # 查看所有容器(包括停止的)

创建容器

docker create [选项] <镜像名称> [命令]  # [选项]和[命令]是可选的;该命令创建容器后,并不会立即启动容器,想启动容器需要再执行docker start命令
docker run [选项] <镜像名称> [命令]  # 创建并启动容器

docker create --name my_container ubuntu:18.04 /bin/bash  # 创建一个名为my_container的容器,该容器基于ubuntu:18.04镜像,并在容器内执行/bin/bash命令,这个/bin/bash命令即使不写也会执行;容器并未启动
docker start my_container  # 启动创建的容器

docker run -it --name my_container ubuntu:18.04 /bin/bash  # 创建并启动容器;使用-it参数会进入容器,执行exit命令后容器会被关闭;

docker run -id --name my_container ubuntu:18.04  # 使用-id参数不会进入容器,执行exit命令后容器也不会被关闭,而是在后台运行
docker exec -it my_container /bin/bash  # 可与上述命令配合使用
# docker run的参数说明
-i:保持容器运行,通过与-t同时使用。使用-it参数时,容器创建后会自动进入容器中,退出容器后容器会自动关闭。
-t:为容器重新分配一个伪输入终端,通常与-i同时使用。
-d:以守护(后台)模式运行容器。创建一个在后台运行的容器,需使用docker exec进入容器,退出后容器不会关闭。
--name:为创建的容器命名。
-it创建的容器一般称为交互式容器,-id创建的容器一般称为守护式容器。

进入容器

docker exec -it <容器名称或容器ID> <命令>  # 使用-it参数可以交互式终端方式进入容器,并执行<命令>

docker exec -it my_container /bin/bash  # 进入名为my_container的容器,并在容器内执行Bash终端

启动容器

docker start <容器名称或容器ID>

停止容器

docker stop <容器名称或容器ID>

删除容器

docker rm <容器名称或容器ID>

删除全部容器

docker rm `docker ps -aq`  # 删除所有容器

docker ps -aq  # 显示所有容器的ID

# 如果有容器正在运行,可能需要先关闭,再进行删除

查看容器信息

docker inspect <容器名称或容器ID>

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