Docker入门
2021/11/24 23:15:35
本文主要是介绍Docker入门,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 1. Docker简介
- 2. Docker架构
- 3. Docker的安装
- 3.1 Linux安装
- 3.1.1 下面以CentOS为例,主要下面几步:
- 3.2 Mac和Windows安装
- 3.1 Linux安装
- 4. Docker操作
- 4.1 下载镜像
- 4.2 启动容器
- 4.3 其他常用命令
- 4.4 推送远程仓库
1. Docker简介
-
Docker的目标“Build, Ship and Run Any App,Anywhere”。通过对应用的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)生命周期进行管理,达到应用组件级别的“一次封装,到处运行”。
-
Docker的优势:
-
更快速的交付和部署
-
更高效的资源利用
-
更轻松的迁移和扩展
-
更简单的更新管理
-
-
Docker核心概念
-
Docker镜像:类似于应用程序。
-
Docker容器:类似于进程。是镜像创建的运行实例,彼此相互隔离。
-
Docker仓库:存放镜像的场所。
-
2. Docker架构
-
Docker_Host:
安装Docker的主机
-
Docker Daemon:
运行在Docker主机上的Docker后台进程
-
Client:
操作Docker主机的客户端(命令行、UI等)
-
Registry:
镜像仓库
-
Images:
镜像,带环境打包好的程序,可以直接启动运行
-
Containers:
容器,由镜像启动起来正在运行中的程序
3. Docker的安装
3.1 Linux安装
官方文档中各种常见的Linux版本都有详细的安装指导。官方指南
3.1.1 下面以CentOS为例,主要下面几步:
1. 卸载旧版本的Docker
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2. 配置yum源
sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#这里修改成了阿里云的
3. 安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io
4. 启动Docker并设置开机开启
sudo systemctl start docker #启动Docker sudo systemctl enable docker #设置开机启动
也可以直接看阿里云的文档就可以。阿里云Docker安装,。
3.2 Mac和Windows安装
Mac(分别有M1和Intel版本)和Windows现在官方已经有图形化的桌面版提供Docker Desktop。
我本地安装Mac版都是一直下一步,直到完成。
安装完后同样需要修改镜像仓库地址。
{ "registry-mirrors": [ "https://hub-mirror.c.163.com" ], "debug": true, "experimental": false }
4. Docker操作
图片来源自尚硅谷Docker资料
4.1 下载镜像
登陆Docker官网进行搜索,下载安装。
以下载nginx镜像为例
- 在图中1标注的位置输入想要搜索的镜像名进行搜索
- 在图中2标注的地方可以直接在剪切板上复制最新的nginx镜像
- 也可以在图中3标注的位置查看nginx其他版本的镜像
- 在图中4标注的地方下载其他版本的镜像(latest也就是最新版本,下面还有其他版本,由于截图原因没展现出来)
docker pull nginx #下载最新版 docker pull nginx:latest #下载最新版 镜像名:版本名(标签) docker pull nginx:1.20.1 docker pull redis #下载最新 docker pull redis:6.2.4 ## 下载来的镜像都在本地 docker images #查看所有本地镜像 docker rmi 镜像名:版本号/镜像id
4.2 启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 【docker run 设置项 镜像名 】 镜像启动运行的命令(镜像里面默认有的,一般不会写) # -d:后台运行 # --restart=always: 开机自启 docker run --name=mynginx -d --restart=always -p 88:80 nginx # -p 宿主机端口:容器端口 端口映射 # -v 宿主机目录:容器目录 挂载目录到宿主机 docker run --name=mynginx \ -d --restart=always \ -p 88:80 -v /data/html:/usr/share/nginx/html:ro \ nginx docker ps # 查看正在运行的容器 docker ps -a # 查看所有 docker rm 容器id/名字 # 删除停止的容器 docker rm -f mynginx #强制删除正在运行中的 docker stop 容器id/名字 #停止容器 docker start 容器id/名字 #再次启动 docker update 容器id/名字 --restart=always #应用开机自启
4.3 其他常用命令
# -i :即使没有附加也保持STDIN 打开 # -t :分配一个伪终端 docker exec -it 容器id /bin/bash # 进入容器内部的系统,修改容器内容 #查看本地镜像 docker images docker save -o abc.tar mynginx:v1.0 # 将镜像保存成压缩包 docker load -i abc.tar # 加载这个镜像 #把容器指定位置的文件到宿主机 docker cp 容器id:/etc/nginx/nginx.conf /data/conf/nginx.conf #将宿主机文件复制到容器里面 docker cp /data/conf/nginx.conf 容器id:/etc/nginx/nginx.conf docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] # -a :提交的镜像作者; # -c :使用Dockerfile指令来创建镜像; # -m :提交时的说明文字; # -p :在commit时,将容器暂停。 docker commit -a "wbo112" -m "message" 容器id newnginx:v1.0
4.4 推送远程仓库
docker tag local-image:tagname new-repo:tagname docker push new-repo:tagname # 把旧镜像的名字,改成仓库要求的新版名字 docker tag nginx:latest mynginx:v1.0 # 登录到docker hub docker login #如果已经登陆了Docker Desktop,这里就不需要登陆了 docker logout #推送完成镜像后退出 # 推送 docker push wbo112/mynginx:v1.0 #推送的镜像名字一般是 注册用户名/镜像名:版本号,这种格式 # 下载镜像 docker pull wbo112/mynginx:v1.0
上传完之后,登陆docker就能看到
如果是Mac或者Windows的话,很多操作也可以通过在Docker Desktop图形化界面来完成,这里就不一一列举出来了。
参考自尚硅谷docker资料
这篇关于Docker入门的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14Docker端口:你真的公开了哪些东西?
- 2024-11-14用DOCKER在家里的实验室里搞些酷炫的玩意儿
- 2024-11-05掌握Docker:高效安全的十大最佳实践
- 2024-11-05在 Docker Compose 中怎么设置端口映射-icode9专业技术文章分享
- 2024-11-05在 Docker Compose 中怎么设置环境变量-icode9专业技术文章分享
- 2024-11-04Docker环境部署项目实战:新手入门教程
- 2024-11-04Docker环境部署资料:新手入门教程
- 2024-11-01Docker环境部署教程:新手入门指南
- 2024-11-01超越Docker:苹果芯片上的模拟、编排和虚拟化方案讲解
- 2024-11-01Docker环境部署:新手入门教程