Docker 快速入门

news/2024/3/29 8:30:22/文章来源:https://blog.csdn.net/weixin_46085718/article/details/130344526

1、Docker 简介

Docker是一个开源的容器引擎,它可以帮助我们更快地交付应用。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用Docker,可更快地打包、测试以及部署应用程序,并可减少从编写到部署运行代码的周期。

 Docker 官方网站https://www.docker.com/

docker 三要素:

  1. Docker 镜像(Images):Docker镜像是一个只读模板,它包含创建Docker容器的说明。它和系统安装光盘有点像——我们使用系统安装光盘安装系统,同理,我们使用Docker镜像运行Docker镜像中的程序。
  2. 容器(Container):容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。我们可通过Docker API或者CLI命令来启停、移动、删除容器。
  3. 仓库(Registry)Docker Registry是一个集中存储与分发镜像的服务。我们构建完Docker镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,我们就需要手动拷贝。此时,我们可借助Docker Registry来避免镜像的手动拷贝。

    一个Docker Registry可包含多个Docker仓库;每个仓库可包含多个镜像标签;每个标签对应一个Docker镜像。这跟Maven的仓库有点类似,如果把Docker Registry比作Maven仓库的话,那么Docker仓库就可理解为某jar包的路径,而镜像标签则可理解为jar包的版本号。

2、Docker 安装与启动

环境:Linux 操作系统,版本是CentOS7 64位 Docker是CE版本(免费版)

Docker 下载链接:链接失效请私信

链接:https://pan.baidu.com/s/1VTxUIz9XDcn3dD6spZEL1A?pwd=qns1
提取码:qns1

将该 rpm 利用 Xftp 上传至 Linux

 

 切换 root 用户获取权限,然后进行安装即可。

su root
yum install -y docker-ce-18.06.0.ce-3.el7.x86_64.rpm

安装完成,最后会出现 Complete !

3、启动与停止 Docker

systemctl start docker
systemctl status docker
systemctl stop docker
systemctl restart docker

查询是否安装成功:会出现Docker相关的详情信息。安装完毕

docker info
[root@localhost file]# docker info
Containers: 6Running: 2Paused: 0Stopped: 4
Images: 2
Server Version: 18.06.0-ce
Storage Driver: overlay2Backing Filesystem: xfsSupports d_type: trueNative Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:Volume: localNetwork: bridge host macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d64c661f1d51c48782c9cec8fda7604785f93587
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:seccompProfile: default
Kernel Version: 3.10.0-957.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 972.6MiB
Name: localhost.localdomain
ID: 33PU:JWNT:UBRS:CLMG:FEHQ:AGAL:APF6:3A3V:64SW:IEIM:XGAR:OOXP
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:127.0.0.0/8
Registry Mirrors:https://4iydscvo.mirror.aliyuncs.com/
Live Restore Enabled: false

 4、配置镜像加速器

阿里云镜像加速https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

 

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://4iydscvo.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

最后docker info 查看是否配置成功,下图表示成功。

 5、Docker 镜像操作常用指令

(1)搜索指令  docker search ...

docker search tomcat

 (2)下载镜像 docker pull 镜像名称

docker pull tomcat

 下载完成。

 (3)查看本地镜像

docker images

 (4)删除镜像,可以通过镜像IMAGE ID删除,也可以镜像名:版本号

docker rmi fb5657adc892

[root@localhost root123]# docker rmi c20987f18b13
Untagged: mysql:5.7
Untagged: mysql@sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Deleted: sha256:c20987f18b130f9d144c9828df630417e2a9523148930dc3963e9d0dab302a76
Deleted: sha256:6567396b065ee734fb2dbb80c8923324a778426dfd01969f091f1ab2d52c7989
Deleted: sha256:0910f12649d514b471f1583a16f672ab67e3d29d9833a15dc2df50dd5536e40f
Deleted: sha256:6682af2fb40555c448b84711c7302d0f86fc716bbe9c7dc7dbd739ef9d757150
Deleted: sha256:5c062c3ac20f576d24454e74781511a5f96739f289edaadf2de934d06e910b92
Deleted: sha256:8805862fcb6ef9deb32d4218e9e6377f35fb351a8be7abafdf1da358b2b287ba
Deleted: sha256:872d2f24c4c64a6795e86958fde075a273c35c82815f0a5025cce41edfef50c7
Deleted: sha256:6fdb3143b79e1be7181d32748dd9d4a845056dfe16ee4c827410e0edef5ad3da
Deleted: sha256:b0527c827c82a8f8f37f706fcb86c420819bb7d707a8de7b664b9ca491c96838
Deleted: sha256:75147f61f29796d6528486d8b1f9fb5d122709ea35620f8ffcea0e0ad2ab0cd0
Deleted: sha256:2938c71ddf01643685879bf182b626f0a53b1356138ef73c40496182e84548aa
Deleted: sha256:ad6b69b549193f81b039a1d478bc896f6e460c77c1849a4374ab95f9a3d2cea2

 (5)保存镜像为文件,首先下载一个java

docker pull java
docker save -o /home/file/jdk.tar java:latest

 (6)将保存的镜像备份文件恢复镜像

先进行docker rmi 删除,在进行恢复。

 docker rmi d23bdf5b1b1b
docker load -i/home/file/jdk.tar

 查看镜像又恢复了。

docker images

 6、Docker 容器常用操作指令

先pull一个镜像

 docker pull java:8

(1)使用镜像创建一个容器

docker run java:8 /bin/echo 'caojun'

 (2)列出容器

docker ps列出当前正在运行的容器
docker ps -a列出当前全部容器
docker ps -a -q列出当前容器的所有编号

(3)停止容器

 一下是两种停止容器的方法。

 (4)启动容器    docker start 容器名称或容器编号

docker start 6cef8b21cada

(5)强制停止容器   docker kill 容器名称或容器编号

[root@localhost file]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                NAMES
2954933039e6        mysql:5.7           "docker-entrypoint.s…"   11 minutes ago      Up 11 minutes       33060/tcp, 0.0.0.0:33306->3306/tcp   offcn_mysql
c2439c591c66        java:8              "/bin/bash"              21 minutes ago      Up 21 minutes                                            jdk1
[root@localhost file]# docker kill 2954933039e6
2954933039e6
[root@localhost file]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
c2439c591c66        java:8              "/bin/bash"         22 minutes ago      Up 22 minutes                           jdk1
[root@localhost file]# 

(6)重启容器        docker restart 容器名称或者容器编号

[root@localhost file]# docker restart 2954933039e6
2954933039e6
[root@localhost file]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                NAMES
2954933039e6        mysql:5.7           "docker-entrypoint.s…"   13 minutes ago      Up 6 seconds        33060/tcp, 0.0.0.0:33306->3306/tcp   offcn_mysql
c2439c591c66        java:8              "/bin/bash"              23 minutes ago      Up 23 minutes                                            jdk1
[root@localhost file]# 

(7)进入容器    docker exec -it heuristic_meninsky /bin/bash

[root@localhost file]# docker exec -it c2439c591c66 /bin/bash
root@c2439c591c66:/# java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2~bpo8+1-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
root@c2439c591c66:/# 
[root@localhost file]# docker exec -it 2954933039e6 /bin/bash
root@2954933039e6:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> 

(8)删除容器 

docker rm 容器名称或者编号 //注意 不能删除正在运行中容器, 需要停掉才可以删除

docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
c2439c591c66        java:8              "/bin/bash"         37 minutes ago      Up 37 minutes                           jdk1
[root@localhost root123]# docker rm c2439c591c66
Error response from daemon: You cannot remove a running container c2439c591c66982f5a55e97a7bc1cd67a5ffed5090e94eef41c59fb6833518e8. Stop the container before attempting removal or force remove
[root@localhost root123]# docker stop c2439c591c66
c2439c591c66
[root@localhost root123]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost root123]# docker rm c2439c591c66
c2439c591c66
[root@localhost root123]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

7、案例

(1)拉取java镜像

 docker pull java:8

创建容器

docker run -di --name  jdk1  java:8

进入容器

docker exec -it jdk1 /bin/bash

验证版本

java -version

 退出

exit
[root@localhost file]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
java                8                   d23bdf5b1b1b        6 years ago         643MB
[root@localhost file]# docker run -di --name  jdk1  java:8
c2439c591c66982f5a55e97a7bc1cd67a5ffed5090e94eef41c59fb6833518e8
[root@localhost file]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
java                8                   d23bdf5b1b1b        6 years ago         643MB
[root@localhost file]# docker exec -it jdk1 /bin/bash
root@c2439c591c66:/# java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2~bpo8+1-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
root@c2439c591c66:/# 

(2)拉取mysql镜像

docker pull mysql:5.7

创建 mysql 容器(这里是最简单的方法进行创建)

docker run -d --name=offcn_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=scwdb  mysql:5.7 

[root@localhost file]# docker run -d --name=offcn_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=scwdb  mysql:5.7 
2954933039e63cbf0a00e2f808b5cf805565dbfa4c7e92c92180be76a995b8e6
[root@localhost file]# docker exec -it offcn_mysql /bin/bash
root@2954933039e6:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> 

var code = "134c199f-0b00-47b4-b048-4e51ec776c0d"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_102875.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python的智能换行函数(一堆烦乱的判断)

def zntxt(txt):line30 #设置单行长度js,e,s,rs,aa,nm,x,y{},[],txt,[],,[],0,0n 1 if ord(s[0]) > 127 else 0for i in range(len(s)):m1 if ord(s[i]) > 127 else 0if m!n:rs.append(aa)aas[i]elif ilen(s)-1:aas[i]rs.append(aa)else:aas[i]nmfor i in rs: for j in…

搜索引擎找外贸客户

说起搜索引擎&#xff0c;我们每个人都不陌生&#xff0c;也许第一时间就能想到平日经常使用的“百度一下”和凭借强大算法及丰富功能占据近85%市场份额的谷歌搜索&#xff08;Statista 2023年1月数据&#xff09;这些耳熟能详的搜索引擎。对于外贸人而言搜索引擎也是非常实用的…

一文谈谈文心一言对比ChatGPT4.0的差距

对于想体验文心一言的朋友&#xff0c;可以进行申请尝试&#xff0c;快速入口 如果想体验ChatGPT的朋友&#xff0c;可以自行fq注册&#xff1b;但是由于现在限制注册并且不稳定&#xff0c;对于不会用梯子不想注册的朋友可以使用这个进行访问&#xff0c;快速入口 关于ChatG…

PMP证书备考攻略+PMP知识点汇总

一&#xff0c;考PMP好处多 1.能力提升 大型项目&#xff0c;领导专业团队 2.升职加薪 晋升管理岗&#xff0c;优先升职加薪 3.招投标加分 具有PMP证书&#xff0c;企业招标有加分 4.转型利器 助力转型&#xff0c;拓宽职业发展 5.公司支持 企业鼓励学习&#xff0c;报销费用 6…

C++模板使用

感谢你的阅读&#xff01;&#xff01;&#xff01; 目录 感谢你的阅读&#xff01;&#xff01;&#xff01; 举个例子&#xff1a; template 有什么意义为什么要用模板 与typedef的区别 使用方法 模板&#xff1a;隐式实例化与显示实例化 和非模板函数以及多个模板类…

气传导耳机和骨传导耳机的区别是啥?气传导耳机有哪些优缺点?

本文主要讲解一下气传导耳机和骨传导耳机的区别、气传导耳机的优缺点&#xff0c;并推荐一些目前主流的气传导耳机款式&#xff0c;大家可以根据自身需求&#xff0c;选择自己感兴趣的部分观看。 气传导耳机和骨传导耳机不同点&#xff1a; 气传导耳机和骨传导耳机最大且最根…

什么是 MVVM?MVVM和 MVC 有什么区别?什么又是 MVP ?

目录标题 一、什么是MVVM&#xff1f;二、MVC是什么&#xff1f;三、MVVM和MVC的区别&#xff1f;四、什么是MVP&#xff1f; 一、什么是MVVM&#xff1f; MVVM是 Model-View-ViewModel的缩写&#xff0c;即模型-视图-视图模型。MVVM 是一种设计思想。 模型&#xff08;Model…

windows安装sqli-labs靶场,两种方式

1、安装phpstudy 官网打不开了&#xff0c;下载地址在这儿https://download.csdn.net/download/weixin_59679023/87711536 双击安装 点自定义安装&#xff0c;选择安装目录&#xff0c;注意目录不要有空格和中文 安装完成启动红框内的两个服务 2、安装sqli靶场 这个包支持ph…

信息收集(三)端口和目录信息收集

信息收集&#xff08;一&#xff09;域名信息收集 信息收集&#xff08;二&#xff09;IP信息收集 端口是什么 "端口"是英文port的意译&#xff0c;可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口&#xff0c;其中虚拟端口指计算机内部或交换机…

关于package.json中版本锁定的方法和问题解决

前置知识&#xff1a;先了解一下package.json和package-lock.json的关系和区别&#xff0c;请看这篇文章 然后我们来说一下改怎么锁定版本&#xff1f; 首先肯定是要把package.json中的 ^ 这个符号去掉&#xff0c;但是如果你只去掉package.json中的 ^那就太天真了&#xff0…

必应,百度,神马头条,搜狗专用站长seo推送工具大全

软件介绍&#xff1a; 百度开始打击滥用api问题&#xff0c;针对这个问题已经开发了拟人推送系列功能&#xff0c;放心使用。 五合一高效推送软件&#xff0c;目前支持百度&#xff0c;神马&#xff0c;必应&#xff0c;搜狗&#xff0c;头条&#xff0c;谷歌六大搜索引擎同步…

优秀简历的HR视角:怎样打造一份称心如意的简历?

简历的排版应该简洁工整&#xff0c;注重细节。需要注意对齐和标点符号的使用&#xff0c;因为在排版上的细节需要下很大功夫。除此之外&#xff0c;下面重点讲述几点简历内容需要注意的地方。 要点1&#xff1a;不相关的不要写。 尤其是与应聘岗位毫不相关的实习经历&#x…

服务提供者 Eureka + 服务消费者(Rest + Ribbon)实战

1、Ribbon背景介绍 Ribbon是Netflix发布的开源项目&#xff0c;主要功能是提供客户端的软件负载均衡算法&#xff0c;将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时&#xff0c;重试等。简单来说&#xff0c;就是在配置文件中列出Load B…

【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令

【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令 一、上讲回顾 在上一讲开发环境搭建中&#xff0c;我们讲解了如何搭建Ubuntu系统环境和ROS2开发运行环境。 1.Ubuntu系统安装 2.ROS2系统环境安装 二、ROS2核心命令讲解 1、daemon-各种守护进程相关的子命令 查看帮助&am…

【计算机网络】网络命令的使用

文章目录 一、实验目的二、实验工具三、实验要求四、实验过程01 ping 命令的使用应用1&#xff1a;验证本地计算机上是否正确安装了 TCP/IP 协议应用2&#xff1a;测试某个目的主机可达性应用3&#xff1a;键入 ping&#xff0c;查看 ping 的其他参数含义 02 netstat 命令的典型…

可能是最强的Python可视化神器,建议一试

数据分析离不开数据可视化&#xff0c;我们最常用的就是Pandas&#xff0c;Matplotlib&#xff0c;Pyecharts当然还有Tableau&#xff0c;看到一篇文章介绍Plotly制图后我也跃跃欲试&#xff0c;查看了相关资料开始尝试用它制图。 Plotly Plotly是一款用来做数据分析和可视化的…

关于GeoServer发布的wfs服务的精度问题

本周基于arcgis/core组件&#xff0c;利用arcgis api for js 4.22版本加载GeoServer发布的同一数据源的wms和wfs服务&#xff0c;出现了偏移的问题。 分析&#xff1a;同一数据源不同的访问方式&#xff0c;出现了偏移&#xff0c;这是很严重的问题。初步判断为js api加载方式的…

HTB-SecNotes

HTB-SecNotes 信息收集8808端口80端口通过CSRF获取通过二次注入 立足tyler -> administrator 信息收集 8808端口 Windows IIS 10.0 可以从官方文档查看10.0版本可能的操作系统。 80端口 通过CSRF获取 目录扫描发现需要登陆后继续进一步操作啊。 对其进行简单的SQL注入测…

Ubuntu20.04安装CUDA和CUDNN

CUDA是GPU深度学习的运行库&#xff0c;那么cuDNN就是训练加速工具&#xff0c;两者要相互配合使用&#xff0c;所以一般机器学习需要训练引擎(tensorflow-gpu) CUDA cuDNN使用。想不安装cuDNN是不可以的&#xff0c;而且cuDNN版本要和CUDA版本相互搭配。 1、前置工作 查看…

MinIO快速入门

一、MinIO概述 官网地址&#xff1a;http://www.minio.org.cn/ 文档地址&#xff1a;http://docs.minio.org.cn/docs/ MinIO是一款基于Apache License v2.0开源协议的分布式文件系统&#xff08;或者叫对象存储服务&#xff09;&#xff0c;可以做为云存储的解决方案用来保存海…