docker入门

一、简介

1.docker简介
  1. 正常部署一个项目环境配置相当麻烦,jdk、mysql、redis等,比如换一台服务器需要重新配置
  2. 可以利用docker的可移植性,将环境一模一样的复制
  3. Docker的出现使得Docker得以打破过去「程序即应用」的观念。透过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作
2.docker理念

解决了运行环境和配置问题的软件容器, 方便做持续集成并有助于整体发布的容器虚拟化技术。

二、docker安装

# centos7+环境安装docker

#安装ggc
yum -y install gcc
yum -y install gcc-c++
#安装需要软件包
yum install -y yum-utils
#设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum软件包索引
yum makecache fast
#安装DOCKER CE
yum -y install docker-ce docker-ce-cli containerd.io
#启动docker
systemctl start docker
#测试
docker version
#卸载
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

三、docker常用命令

1.帮助启动命令
  • 启动docker: systemctl start docker
  • 停止docker: systemctl stop docker
  • 重启docker: systemctl restart docker
  • 查看docker状态: systemctl status docker
  • 开机启动: systemctl enable docker
  • 查看docker概要信息: docker info
  • 查看docker总体帮助文档: docker --help
2.镜像操作
$ docker images 					#查看镜像
$ docker search OPTIONS xxx    		#搜索镜像 	
$ docker pull xxx:latest			#拉取镜像
$ docker system df 					#查看镜像/容器/数据卷所占的空间
$ docker rmi -f xxx			  		#删除镜像

REPOSITORY:表示镜像的仓库源

TAG:镜像的标签版本号

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小

OPTIONS说明:

limit : 只列出N个镜像,默认25个

docker search --limit 5 redis

last 版本号

3.容器操作
$ docker rum [options] image [command]		运行镜像
$ docker ps         # 查看正在运行的容器
$ docker ps -a      # 查看所有容器
$ docker ps -l      # 查看最近一次运行的容器
$ docker create 容器名或者容器ID    # 创建容器
$ docker start [-i] 容器名        # 启动容器

$ docker run 容器名或者容器ID       # 运行容器,相当于docker create + docker start
$ docker run --name nginx01 -p 80:80 -d nginx # 创建并运行容器
--name nginx01:容器别名。
-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
-d nginx: 设置容器在在后台一直运行

$ docker attach 容器名或者容器ID bash     # 进入容器的命令行(退出容器后容器会停止)
$ docker exec -it 容器名或者容器ID bash   # 进入容器的命令行 退出容器不会停止
$ docker stop 容器名                    # 停止容器
$ docker kill 容器名
$ docker rm 容器名                      # 删除停止的容器
$ docker top 容器名                    # 查看WEB应用程序容器的进程
$ docker inspect 容器名                # 查看Docker的底层信息
$ docker logs 容器名                    #查看容器日志

OPTIONS说明(常用):有些是一个减号,有些是两个减号

-d: 后台运行容器并返回容器ID

-i:以交互模式运行容器,通常与 -t 同时使用;

-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-p: 指定端口映射

# docker 安装mysql
$ docker pull mysql:5.6
# 查看本地镜像
$ docker images
# 运行容器
$ docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.6
4.docker镜像
  1. 什么是镜像

    轻量级,可执行独立软件包,包含运行某个软件所需的所有内容,把应用程序和配置依赖打包好形成一个可交付的运行环境

  2. 分层的镜像

    在pull下载过程种可以看到docker的镜像好像是在一层一层的在下载

  3. UnionFS(联合文件系统)

镜像可以通过分层来进行继承

  1. Docker镜像加载原理

    docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS。

    bootfs(boot file system)主要包含bootloader和kernel, bootloader主要是引导加载kernel, Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是引导文件系统bootfs

  2. 为什么 Docker 镜像要采用这种分层结构

    镜像分层最大的一个好处就是共享资源,方便复制迁移,就是为了复用

  3. 重点理解

    Docker镜像层都是只读的,容器层是可写的 当容器启动时,一个新的可写层被加载到镜像的顶部

5.容器打包镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
#示列
docker commit -a "qxd" -m "this is tomcat test" 1cff900e2ef6 tomcat:v1

-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停

6.本地镜像上传阿里云

https://cr.console.aliyun.com/cn-hangzhou/instances 阿里容器镜像服务

  1. 命令空间创建

  2. 创建镜像仓库

  3. 管理创建的镜像仓库

    根据操作指南· 将镜像推送到阿里云

#1. 登录阿里云Docker Registry 
$ docker login --username=10841*****@qq.com registry.cn-hangzhou.aliyuncs.com
#2. 将镜像推送到Registry
$ docker login --username=10841*****@qq.com registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/qxd_private/imags:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/qxd_private/imags:[镜像版本号]
#3. 从Registry中拉取镜像
$ docker pull registry.cn-hangzhou.aliyuncs.com/qxd_private/imags:[镜像版本号]

二、高级篇

posted @   一给窝里giao  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示