Docker--从部署到实战

172 阅读2分钟

Docker 简介

软件容器平台

开发---“在我的机器上可正常工作”

运维---在隔离容器中并行运行和管理应用

企业---构建敏捷的软件交付管道

应用程序与该程序的依赖,打包在一个文件里面。

运行这个文件,就会生成一个虚拟容器。

程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。

创建和使用容器,把自己的应用放入容器。

进行版本管理、复制、分享、修改

Docker 项目加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)

Docker 优势

更快速的交付和部署

容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

更高效的虚拟化

内核级的虚拟化,可以实现更高的性能和效率

更轻松的迁移和扩展

在任意的平台上运行 兼容性

更简单的管理

替代以往大量的更新工作

VM vs Docker

VM

Docker

启动可以在秒级实现。

对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。

相关概念

Docker daemon

Docker client

Docker image

Docker container

Docker hub/registry

Docker安装

[root@master ~]# yum install docker -y
[root@master ~]# systemctl start docker.service # 启动 docker 服务
[root@master ~]# systemctl enable docker.service #设置为开机启动
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@master ~]# docker version #返回docker的版本相关信息,证明docker安装成功
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-203.git0be3e21.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      0be3e21/1.13.1
 Built:           Thu Nov 12 15:11:46 2020
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-203.git0be3e21.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      0be3e21/1.13.1
 Built:           Thu Nov 12 15:11:46 2020
 OS/Arch:         linux/amd64
 Experimental:    false

Hello World

[root@master docker]# vim /etc/docker/daemon.json  # 配置文件 Docker 中国加速器
#添加后
{
    "registry-mirrors": ["https://registry.docker-cn.com"],
    "live-restore": true
}
[root@master docker]# docker pull library/hello-world # 将 image 文件从仓库抓取到本地
Using default tag: latest
Trying to pull repository docker.io/library/hello-world ...
Get https://registry-1.docker.io/v2/library/hello-world/manifests/latest: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Fhello-world%3Apull&service=registry.docker.io: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
[root@master docker]# docker images # 查看本机 image 文件
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
docker.io/hello-world   latest              bf756fb1ae65        11 months ago       13.3 kB
[root@master docker]# docker run hello-world # 
Hello from Docker!
This message shows that your installation appears to be working correctly.

常用命令

# 拉取docker镜像
docker pull image_name
# 拉取docker镜像 Docker镜像保存在/var/lib/docker目录
docker images
docker rmi  docker.io/tomcat:7.0.77-jre7   或者  docker rmi b39c68b7af30
# 查看当前有哪些容器正在运行
docker ps
# 查看所有容器
docker ps -a
# 启动、停止、重启容器命令
docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id
# 删除容器
docker rm container_name/container_id
# 删除所有停止的容器
docker rm $(docker ps -a -q)
# 查看当前系统Docker信息
docker info
# 查找nginx镜像
docker search nginx