初识docker 小记
2021/4/27 18:25:23
本文主要是介绍初识docker 小记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一. docker与虚拟机的区别
1. 虚拟机之间 系统级别的隔离
2. docker容器之间 进程级别的隔离
3. docker仓库地址:https://hub.docker.com
二. docker安装
1、查看系统内核版本号(至少是3.10及以上版本)
[root@docker /]# uname -a Linux docker 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
2、安装依赖软件
[root@docker /]# yum install -y yum-utils device-mapper-persistent-data lvm2
3、添加docker镜像源
[root@docker /]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo [root@docker /]# ll /etc/yum.repos.d/ total 12 -rw-r--r--. 1 root root 2523 Aug 5 20:09 CentOS-Base.repo -rw-r--r-- 1 root root 2640 Mar 16 2020 docker-ce.repo -rw-r--r--. 1 root root 664 Aug 5 20:09 epel.repo
4、安装docker
[root@docker /]# yum install docker-ce -y
5、设置开机自启动
[root@docker /]# systemctl enable --now docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
6、验证是否安装成功【输入docker后有内容输出即默认安装成功】
[root@docker /]# docker Usage: docker [OPTIONS] COMMAND A self-sufficient runtime for containers
7、设置加速器
# 打开阿里云官网 # 选择 产品 -> 容器与中间件 -> 容器与镜像服务ACR -> 管理控制台 -> 镜像加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://8mh75mhz.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
8、docker第一个案例
[root@docker /]# docker run -d -P --rm nginx Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx 6ec7b7d162b2: Pull complete cb420a90068e: Pull complete 2766c0bf2b07: Pull complete e05167b6a99d: Pull complete 70ac9d795e79: Pull complete Digest: sha256:4cf620a5c81390ee209398ecc18e5fb9dd0f5155cd82adcbae532fec94006fb9 Status: Downloaded newer image for nginx:latest c5938fd6c0f392b429e12a5ea5ba7ed1e27befe2dde1247c843f70ca3d9db138 [root@docker /]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c5938fd6c0f3 nginx "/docker-entrypoint.…" About a minute ago Up About a minute 0.0.0.0:49153->80/tcp naughty_buck
镜像
1、下载镜像
格式: docker pull [指定仓库URL]/[命名空间]/[镜像名称]:[镜像版本ID] 默认情况下:镜像URL是:docker.io, 命名空间名称:library 实例: [root@docker ~]# docker pull centos:7.9.2009 7.9.2009: Pulling from library/centos 2d473b07cdd5: Pull complete Digest: sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e Status: Downloaded newer image for centos:7.9.2009 docker.io/library/centos:7.9.2009
2、查看镜像列表
格式: docker image ls 或者 docker images 实例: [root@docker ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest ae2feff98a0c 3 weeks ago 133MB centos 7.9.2009 8652b9f0cb4c 8 weeks ago 204MB alvinos/elasticsearch-head latest 78b79497bed5 12 months ago 1.11GB 参数: -a : 列出系统临时镜像文件 --digests: 列出系统镜像摘要 -q : 只显示镜像ID
3、查看镜像详细信息
格式: docker inspect [镜像名称]:[版本号] | [镜像ID] 实例: [root@docker ~]# docker inspect ae2feff98a0c [ { "Id": "sha256:ae2feff98a0cc5095d97c6c283dcd33090770c76d63877caa99aefbbe4343bdd", "RepoTags": [ "nginx:latest" ], ...
4、镜像tag (取别名)
格式 docker tag [镜像ID] [别名]:[版本号] 示例: [root@docker ~]# docker tag ae2feff98a0c registry.cn-hangzhou.aliyuncs.com/alvinos/test-nginx:v1 [root@docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry.cn-hangzhou.aliyuncs.com/alvinos/test-nginx v1 ae2feff98a0c 3 weeks ago 133MB nginx latest ae2feff98a0c 3 weeks ago 133MB
5、推送远程仓库
格式: docker push [镜像名称及版本号] 示例: [root@docker ~]# docker push registry.cn-hangzhou.aliyuncs.com/alvinos/test-nginx:v1 The push refers to repository [registry.cn-hangzhou.aliyuncs.com/alvinos/test-nginx] 4eaf0ea085df: Pushed 2c7498eef94a: Pushed 7d2b207c2679: Pushed 5c4e5adc71a8: Pushed 87c8a1d8f54f: Pushed v1: digest: sha256:13e4551010728646aa7e1b1ac5313e04cf75d051fa441396832fcd6d600b5e71 size: 1362
6、登录远程仓库
格式: docker login [参数] [仓库URL(默认使用docker.io)] 示例: [root@docker ~]# docker login registry.cn-hangzhou.aliyuncs.com Username: yangyang091022 Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
7、查看镜像构建历史
格式: docker history [镜像名称或ID] 示例: [root@docker /etc/docker]# docker history alvinos/elasticsearch-head IMAGE CREATED CREATED BY SIZE COMMENT 78b79497bed5 12 months ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "grun… 0B <missing> 12 months ago /bin/sh -c #(nop) EXPOSE 9100 0B <missing> 12 months ago /bin/sh -c #(nop) COPY dir:14aab6a4b7736a5f8… 29.1MB 作用: 查看镜像构建步骤。
8、搜索镜像
格式: docker search [参数] [镜像名称] 示例 [root@alvin-test-os ~]# docker search redis NAME DESCRIPTION STARS OFFICIAL AUTOMATED redis Redis is an open source key-value store that… 8779 [OK] 解释: NAME : 镜像名称 DESCRIPTION : 镜像简介 STARS : 收藏数 OFFICIAL : 是否是官方镜像 AUTOMATED : 是否是自构建镜像 参数: -f : 过滤 is-official=true --no-trunc : 不截断输出 --limit : 设置查询的条数
9、删除镜像
格式: docker rmi [镜像名称或ID] 示例: [root@docker /etc/docker]# docker rmi centos:7.9.2009 Untagged: centos:7.9.2009 Untagged: centos@sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e Deleted: sha256:8652b9f0cb4c0599575e5a003f5906876e10c1ceb2ab9fe1786712dac14a50cf Deleted: sha256:174f5685490326fc0a1c0f5570b8663732189b327007e47ff13d2ca59673db02 参数: -f : 强制删除镜像
10、清理镜像
格式: docker image prune [参数] 示例: [root@docker /etc/docker]# docker image prune -a WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? [y/N] y Deleted Images: untagged: registry.cn-hangzhou.aliyuncs.com/k8sos/coredns:1.8.0 untagged: registry.cn-hangzhou.aliyuncs.com/k8sos/coredns@sha256:242d440e3192ffbcecd40e9536891f4d9be46a650363f3a004497c2070f96f5a deleted: sha256:bfe3a36ebd2528b454be6aebece806db5b40407b833e2af9617bf39afaff8c16 deleted: sha256:a597a889e48ff93963ece86ec4c1d643548a006fc736d36459d2b3fe3c089ba9 deleted: sha256:225df95e717ceb672de0e45aa49f352eace21512240205972aca0fccc9612722 参数: -a : 删除所有未被使用的镜像 -f : 是否需要提示
11、保存镜像
commit保存镜像针对的是保存容器。 格式: docker commit [参数] [容器ID] [镜像名称:版本号] 示例: [root@docker /etc/docker]# docker commit -m '这是一个CentOS' -a "xxx" -p d92bbdfc3273 sha256:a6980fb4e70c206b9e9ce03d4cb8e03bf0a2af305aca0c4468e841c9c0ad2e0d [root@docker /etc/docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> a6980fb4e70c 4 seconds ago 209MB 参数: -m : 简介信息 -a : 指定作者 -p : 保存镜像时,镜像暂停运行(挂起)
12、镜像的导入与导出
# 使用 export 和 import 针对是容器 export 格式: docker export [容器名称] > [压缩包名称] 示例 [root@docker /etc/docker]# docker export c5938fd6c0f3 > nginx.tar [root@docker /etc/docker]# ll -rw-r--r-- 1 root root 135404032 Jan 11 19:56 nginx.tar import 格式: docker import [压缩包名称] [镜像名称] 示例 [root@docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE test/nginx v1 fcd61543c224 6 seconds ago 131MB # 使用 load 和 save 针对的是镜像 save 格式: docker save [镜像ID...] > [压缩包名称] 注:使用镜像ID保存镜像时,导入时没有名称 示例: [root@docker ~]# docker save alvinos/elasticsearch-head:latest > head.tar [root@docker ~]# ll -rw-r--r-- 1 root root 1152956416 Jan 11 20:01 head.tar load 格式: docker load < [压缩包名称] 示例 [root@docker ~]# docker load < head.tar ebac2fb2022f: Loading layer [==================================================>] 29.26MB/29.26MB Loaded image: alvinos/elasticsearch-head:latest # 两种保存方式有哪些不同 1、针对的对象不一样(export和import针对的是容器,save和load针对的是镜像) 2、save是完全保存, export是部分保存 3、save保存的体积稍微大一些 4、save保存的是原生的镜像,export保存成一个新的镜像 5、save保存无法修改名称,export可以修改名称 6、save可以同时保存多个镜像,export不可以同时保存多个容器 7、save应用场景在部署或者需要追溯的场景中,export应用场景在作为基础镜像时使用
这篇关于初识docker 小记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-28duckdns docker
- 2024-03-21docker add host
- 2024-03-14denied: requested access to the resource is denied docker push
- 2024-03-07docker graylog
- 2024-03-05Docker容器实战(00)-基础命令大全
- 2024-03-01dockerd-entrypoint.sh
- 2024-02-23linux mint install docker
- 2024-01-18angular docker
- 2024-01-10优雅而强力地卸载docker-desktop
- 2024-01-09完蛋,我被挖矿木马包围了|使用 TLS 连接 Docker