Docker 快速入门、核心概念和常用指令

周末有朋友问起Docker相关的问题。今天就来跟大家分享Docker 快速入门、核心概念和常用指令。

Docker 快速入门、核心概念和常用指令

1、基本概念与操作

1.1、安装

Linux 是 Docker 的原生支持平台,所以建议在 Linux 下安装。CentOS 下安装 Docker,需要 7 及以上的发行版,建议使用 overlay2 存储驱动程序。

# 卸载已有 docker sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 1. 添加安装源 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 1. 安装最新版 sudo yum install docker-ce docker-ce-cli containerd.io 1. 启动 sudo yum install docker-ce docker-ce-cli containerd.io登录后复制

2、重命名镜像 docker tag 如:docker tag nginx:latest mynginx:latest

3、查看镜像 docker image ls 或 docker images

4、删除镜像 docker rmi

如:docker rmi mynginx

5、构建镜像 docker build 或 docker commit 如:docker commit nginx mynginx:lastest docker build 相对复杂,但使用较多

生命周期:

created:初建状态

running:运行状态

stopped:停止状态

paused:暂停状态

deleted:删除状态

操作:1、创建并启动容器

创建:docker create -it --name=mynginx mynginx

启动:docker start mynginx

创建并启动:docker run -it --name=mynginx mynginx

2、终止容器 docker stop mynginx

3、进入容器 docker attach mynginx docker exec -it mynginx sh (使用较多)

4、删除容器 docker rm mynginx 删除运行中的容器:docker rm -f mynginx

5、导出容器 docker export mynginx > mynginx.tar

6、导入容器 docker import mynginx.tar mynginx:import

公共仓库 docker hub https://hub.docker.com/ 登录:docker login 推送镜像到仓库:docker push

使用 distribution 构建私有仓库 https://github.com/distribution/distribution

docker run -d -p 5000:5000 --name registry registry:2.7 docker push localhost:5000/mynginx

2、-v 指定被持久化的路径,Docker 会自动为我们创建卷,并且绑定到容器中 docker run -d --name=nginx-volume -v /usr/share/nginx/html nginx

3、查看:docker volume ls

4、卷详细信息:docker volume inspect volume-name

5、--mount 参数指定卷的名称 docker run -d --name=nginx --mount source=volume-name,target=/usr/share/nginx/html nginx

6、删除卷:docker volume rm volume-name

7、卷之间数据共享:docker run --mount source=lv,target=/tmp/log --name=v-producer -it test docker run -it --name consumer --volumes-from v-producer test

8、卷与主机之间数据共享:docker run -v /data:/usr/local/data -it test

  • docker,是 Docker 客户端,发送请求
  • dockerd,服务端入口,负责接收请求、返回结果
  • docker-init,容器的 1 号进程,管理子容器
  • docker-proxy,主机的网络流量转发到容器

2、containerd

  • containerd,负责容器的生命周期管理,如容器启动、停止等…
  • containerd-shim,作为容器进程的父进程,解耦 containerd 和真正的容器进程
  • ctr,containerd 的客户端,开发与调试时向 containerd 发送请求

3、运行时

  • runc,通过系统接口,创建、销毁容器