什么是docker
docker是一个基于GO语言的开源应用容器引擎。它可解决生成的软件环境依赖以及不同应用直接的间隔问题。docker的基本组成是由Client、Docker host和Registry组成,其中镜像、容器和仓库其重要组成。
镜像(image):docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像—>run---> ->tomcat01容器(提供服务),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中运行的)。
容器(container):docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的,启动、停止、删除、基本命令,目前就可以把这个容器理解为就是一个简易的Linux系统。
仓库(repository):仓库就是存放镜像的地方,仓库分为公有仓库和私有仓库,Docker Hub(默认是国外的)、阿里云…都有容器服务器(配置镜像加速)
Centos 安装docker
卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装docker
# 配置仓库repository
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 方法1: 安装docker引擎(the lastest version)
sudo yum install docker-ce docker-ce-cli containerd.io
# 方法2: 安装指定版本docker engine
yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
启动docker
sudo systemctl start docker
测试安装是否成功
sudo docker run hello-world
创建docker用户组
sudo groupadd docker
sudo usermod -aG docker <your-user>
卸载docker
# 卸载 Engine CLI and containerd packages
sudo yum remove docker-ce docker-ce-cli containerd.io
# remove Images, containers etc
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
docker命令
官方帮助文档:https://docs.docker.com/engine/reference/run/
查看信息和帮助命令
docker version : 查看docker的版本信息
docker info : 显示docker的系统信息,包括镜像和容器的数量
docker xxx --help: 帮助命令,显示docker所有命令
docker [command] --help: 显示command的参数信息
镜像命令
docker images: 查看所有的本地的主机上的镜像
REPOSITORY # 镜像的仓库源
TAG # 镜像标签
IMAGE ID # 镜像ID
CREATED # 镜像创建时间
SIZE # 镜像大小
搜索镜像
docker search image_name: 根据镜像名字搜索镜像
docker search centos
下载镜像
docker pull 镜像名字: 下载镜像,默认是下载最新版本,也可以指定下载某个版本镜像(docker pull centos:5.7).
docker pull centos
docker下载镜像时候是分层下载
删除镜像
# 删除镜像 -f是全部删除
docker rmi -f 镜像ID1或容器ID1 镜像ID2或容器ID2
# 删除所有镜像ID
docker rmi -f $(docker images -aq)
容器命令
container可以通过image创建
下载镜像
docker pull centos为下载镜像centos命令
docker pull centos
新建容器并启动
docker run \
--name="Test1" \ # 容器名字,区分不同容器
-d \ # 后台方式运行
-it \ # 使用交互式运行,进入容器查看内容
-p \ # 指定容器端口
centos \ # 镜像名
# 启动并进入容器
docker run -it centos /bin/bash
查看所有运行中的容器
# 显示所有容器
docker ps -a
# 退出容器
exit
# 删除容器
docker rm 容器ID
启动容器
docker start 容器ID # 启动容器
docker restart 容器ID # 重启容器
docker stop 容器ID # 停止正在运行的容器
docker kill 容器ID # 强制停止当前正在运行的容器
案例
运行nginx
- 下载镜像 nginx,默认下载最新版本且分层下载
docker pull nginx
- 创建容器且启动容器
# 查看镜像是否存在
docker images
# 创建启动容器
docker run \
-d \
--name nginx01 \
-p 3344:80 \
nginx
注:先前已经创建过同名字的容器,需要使用docker rm删除旧容器后再使用docker run创建新容器,-d是后台运行的意思
- 判断是否运行成功,docker ps查看容器状态或进入IP:3344进行网页查看即可
docker ps
- 进入Nginx容器
docker exec -it nginx01 /bin/bash