1. Docker 概念
- Docker 是一个开源的应用容器引擎
- 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)
- Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。
- 容器是完全使用沙箱机制,相互隔离
- 容器性能开销极低。
- Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)
小结:Docker是一种容器技术,解决软件跨环境迁移的问题
2. 安装 Docker
# 1、yum 包更新到最新
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
3. 配置 Docker 镜像加速器
默认情况下,将来从docker hub(https://hub.docker.com/)上下载docker镜像,太慢。一般都会配置镜像加速器:
- USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)
- 阿里云
- 网易云
- 腾讯云
这里我们使用阿里云的加速器
点击左侧菜单,在搜索栏中输入:容器镜像服务,找到镜像加速器
根据自己linux版本来选择
在root 用户下赋值上面的命令,逐一执行一次
4. Docker 命令
4.1 Docker 进程相关命令
开启docker
关闭docker:systemctl stop docker
开机自启动docker:systemctl enable docker
重启docker服务:systemctl restart docker
4.2 Docker 镜像相关命令
-
查看镜像: 查看本地所有的镜像
-
docker images
docker images –q # 查看所用镜像的id -
选择内部还没有镜像,所以只显示项目栏
-
-
搜索镜像:从网络中查找需要的镜像
-
docker search 镜像名称
-
试着查找redis镜像
-
-
拉取镜像 :从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本。
如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。-
docker pull 镜像名称
-
下载redis镜像,如果有指定要下载的版本,就在后面加个冒号再加个版本,如果没加版本那么就是默认最新版
再查看一下镜像,是否有将redis镜像下载下来
-
这里就有一个问题了,怎么知道自己想要下载的版本,官方有在维护,可以下载呢?
可以登录docker的网站:hub.docker.com,在里面进行查找看看有没有自己想要的版本
-
-
删除镜像: 删除本地镜像
-
docker rmi 镜像id # 删除指定本地镜像
docker rmidocker images -q
# 删除所有本地镜像 -
删除redis镜像
-
4.3 Docker 容器相关命令
要注意,docker命令只能在宿主机中使用,一旦我们进入到容器内,就不能使用docker命令了
-
查看容器
-
docker ps # 查看正在运行的容器
docker ps –a # 查看所有容器,包括历史容器
docker ps -aq # 查看所有容器id
-
-
创建容器
-
docker run 参数
-
参数说明:
-i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
两种组合: -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
–name:为创建的容器命名。 -
创建一个容器,这里的/bin/bash写不写都行,因为就算不写默认也有
退出容器使用exit命令
-
-
进入容器
- docker exec 参数 容器名称 # 退出容器,容器不会关闭
- 使用 id 参数创建的容器,是不会自动进入容器,需要使用exec命令进入容器
-
停止容器
- docker stop 容器名称
<
- docker stop 容器名称