Docker容器基本使用

Dcoker

  • Docker是一个开源的应用容器引擎,是一个轻量级别的容器技术
  • Dcoker支持将软件编译成一个镜像;然后在镜像中对各种软件做好配置,再将镜像发布出去,供别人使用
  • 运行中的镜像称为容器,容器的启动是非常快速的

核心概念

  • docker主机(Host):安装了Docker程序的机器,Docker直接运行在系统的内核上
  • docker客户端(Client):链接docker主机进行操作
  • docker仓库(Registry):用来保存各种打包好的软件镜像
  • docker镜像(Images):软件打包好的镜像;放在docker仓库中
  • docker容器(Container):镜像启动后的一个实例称为一个容器;容器是独立运行的一个或者一组应用

操作Docker的步骤

  1. 根据安装Docker的操作系统和内核不同,具体的操作命令可以参考官网
  2. 安装Docker 
    yum install docker
  3. 查看Docker的版本
    docker -v
  4. 查看Docker的状态
    service docker status
  5. 启动Docker
    service docker start
  6.  停止Dcoker
    service docker stop
  7. 设置Docker开机自启动(最新版的命令,Docker CE开源版) 
    systemctl enable docker

Docker常用命令

镜像操作

操作命令说明
检索docker search 关键字 eg:docker search redis我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。
拉取docker pull 镜像名:tag:tag是可选的,tag表示标签,多为软件的版本,默认是latest
列表docker images查看所有本地镜像
删除docker rmi image-id删除指定的本地镜像

修改镜像源

新建/etc/docker/daemon.json文件,在其中新增如下的内容;新版本不存在这个文件,需要新建

vim /etc/docker/daemon.json# 内容:{
"registry-mirrors":["我们的镜像源地址"]
}

国内镜像源一般可以使用阿里和有道

容器操作(Tomcat)

  1. 查询镜像 docker search tomcat
  2. 下载镜像 docker pull tomcat 如果不指代版本,默认下载最新版,我们可以上网站httpps://hub.docker.com/网站查找版本号

  3. 根据镜像启动容器,不加TAG默认就是latest,如果没有下载就会先先下载再启动

    docker run --name mytomcat -d tomcat:latest
    --name :给容器起一个名字
    -d:后台启动,不加就是前台启动
    
  4. 查看运行中的容器
    docker ps
  5. 停止运行中的容器
    docker stop  容器的id# 或者docker stop  容器的名称,就是使用--name起的名字
  6. 查看所有的所有的容器
    docker start 容器id/名字
  7. 启动容器
    docker start 容器id/名字
  8. 删除一个容器
    docker rm 容器id/名字
  9. 启动一个做了端口映射的tomcat
     docker run -d -p 8888:8080 tomcat
    -d:后台运行
    -P:将主机的端口映射到外部,从而可以调用  主机端口(8888):容器内部的端口(8080)
    外界通过主机的8888端口就可以访问到tomcat,前提是8888端口访问
  10. 关闭防火墙
    # 查看防火墙状态
    service firewalld status# 关闭防火墙
    service firewalld stop
  11. 查看容器日志
    docker logs 容器id/名字

容器操作(Mysql)

注意事项(如果使用本地安装,如果安装在虚拟机或者是服务器上,host会变)

  • host: 127.0.0.1 (可以换成IP地址,但是如果是本地,也不要选localhost)
  • port: 3306
  • user: root
  • password: 123456 
  1. # 拉取镜像
    docker pull mysql:5.7# 运行mysql容器docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7# --name mysql:容器的名字是mysql
    # MYSQL_ROOT_PASSWORD:指定以root为账号的密码是123456
    
  2. 连接容器内的mysql
    docker exec -it mysql bash#当后台启动容器,如果想进入容器,使用如下命令
    #docker attach
    #docker exec 推荐使用;因为此推出容器终端,不会导致容器的停止-i:交互式操作
    -t:终端
    mysql:名字为mysql的镜像
    bash:放在镜像名字后面是命令;启动交互式shell,因此使用bash;也可以使用/bin/bash
  3. 直接使用端口映射更加方便
    docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.28

参考链接

 

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

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

相关文章

为什么35岁的C++依然能主导编程世界

早在1979年,Bjarne Stroustrup设计了C编程语言,并且C很快成为了无处不在的通用系统编程语言。现在尽管有Java、Javascript、Python、Go,甚至是苹果的Swift和它竞争,但C依然处于主导编程世界的地位。 今天在Morgan Stanley的科技访…

SpringBoot整合JPA

添加依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId&…

为什么说选择正确的编程语言很重要,以及如何正确的选择

几个月前&#xff0c;一个同事问我&#xff0c;应该如何选择编程语言&#xff0c;或者有没有什么固定的选择模式&#xff0c;当时我便打算写点什么。上周在硅谷开会&#xff0c;这我是第一次跟“hack3rs”的创业狂以及技术狂们打交道。我学会了很多前所未闻的脏话&#xff0c;也…

细数开源历史上的十个重大事件

开放源码&#xff08;开源&#xff09;的精神在于使用者可以使用、复制、散布、研究和改进软件。这可以追溯到20世纪60年代&#xff0c;至今已有半个世纪了。虽然下面所列举的不都是专门的开源产品&#xff0c;但还是在开源发展的进程中有着巨大的影响。开放源码&#xff08;开…

深度卷积神经网络CNNs的多GPU并行框架及其应用

摘要&#xff1a;本文是腾讯深度学习系列文章之一&#xff0c;主要聚焦于腾讯深度学习平台&#xff08;Tencent Deep Learning Platform&#xff09;中深度卷积神经网络Deep CNNs的多GPU模型并行和数据并行框架。 【编者按】深度卷积神经网络有着广泛的应用场景&#xff0c;本…

线程安全和对应的核心概念

线程安全 线程安全的概念&#xff1a;当多个线程访问某一个类&#xff08;对象和方法&#xff09;时&#xff0c;这个类始终都能表现出正确的行为&#xff0c;那么这个类&#xff08;对象或者方法&#xff09;就是线程安全的synchronized&#xff1a;可以在任意对象及方法上加…

JDK Unsafe类的使用与CAS原子特性

JDK Unsafe类的使用与CAS原子特性 Java.util.concurrent.atomic包&#xff0c;其中包含了大量使用到Unsafe这个类Java不能直接访问操作系统的底层&#xff0c;而是通过本地方法来访问。 Unsafe类提供了硬件级别的原子操作&#xff0c;主要提供了以下功能 内存操作字段的定位和…

写软件不是造汽车

写软件和做其他事情是不一样的。当我们制造别的东西的时候——像汽车、玩具、椅子、画作、甚至包括数字产品如平面图片和3D模型——我们做出来的成品就是最终的结果。而开发软件则不是&#xff0c;我们做出来的产品永远不可能有最终的结果——我们需要向计算机解释如何根据任意…

网站盈利的10种方式

如果你有自己的网站&#xff0c;而且已经有了不少的流量&#xff0c;你肯定会开始考虑如何通过这个网站来挣一些钱。 在这篇文章中&#xff0c;我会向大家介绍网站最常见的10种盈利方式。 1.按点击付费广告 在网站上展示一个按点击付费的广告横幅是最简单的盈利方式&#xff…

Redis数据的类型

Redis一共分为五种基本数据类型&#xff1a;String、Hash、List、Set、Zset. string 内部编码有三种&#xff0c;raw&#xff0c;embstr&#xff0c;int String 是二进制的。可以存储序列化对象&#xff0c;图片&#xff0c;字符串&#xff0c;数值等 set和get方法 &#x…

Redis高级命令与特性以及单点模式的介绍

高级命令 keys * 返回满足条件的所有key&#xff0c;可以模糊匹配exists 是否存在指定的keypersist 取消过期时间select 选择数据库 &#xff08;0-15&#xff0c;总共16个数据库&#xff09;move key index 将当前数据库的 key 移动到给定的数据库 db 当中randomkey 随机返回…

同为程序员 为什么我的工资最低

我看着工资单上每一个开发团队成员的薪水&#xff0c;慢慢地我不能保持淡定了。 而当我看到我的工资排名是倒数的时候——靠近最后一名——我不由得倒抽一口冷气。就像圣诞故事中的那个可爱的小男孩Ralphie &#xff0c;想买气枪却被忽悠会有危险一样&#xff0c;我也不断忽悠…

redis.conf配置文件详解

基本配置 daemonize no #是否以后台进程启动databases 16 #创建database的数量(默认选中的是database 0)save 900 1 #刷新快照到硬盘中&#xff0c;必须满足两者要求才会触发&#xff0c;即900秒之后至少1个关键字发生变化save 300 10 #必须是300秒之后至少10个关键字发生变…

用Unix的设计思想来应对多变的需求

摘要&#xff1a;无论是Unix设计&#xff0c;还是面向对象设计&#xff0c;还是别的什么如SOA&#xff0c;ECB&#xff0c;消息&#xff0c;事件&#xff0c;MVC&#xff0c;网络七层模型&#xff0c;数据库设计&#xff0c;等等&#xff0c;他们都在干三件事——解耦&#xff…

有关编程的12个猜想

摘要&#xff1a;编程世界的将来如何目前仍难预料&#xff0c;但可以肯定的一点是技术一直在加速发展。本文搜罗出12个独特的编程视角猜想&#xff0c;一起来看看有哪些猜想在不久的将来就能变为现实。 编程世界的将来如何目前仍难预料&#xff0c;但可以肯定的一点是技术一直…

面试中如何剔除“鱼目混珠”程序员?

公司招聘面试事宜是一个耗时耗钱的项目&#xff0c;从挑选简历开始&#xff0c;还要花更多的时间面试候选人。有的时候这些人才机构会向你保证这些人都是Java天才、SQL专家、堆栈开发者等等&#xff0c;但实际上真实情况远不及你想想的。对于一个公司来说&#xff0c;执行招聘面…

java容器相关问题

同步类容器 1&#xff0c;这些复合操作在多线程并发地修改容器时&#xff0c;可能会表现出意外的行为&#xff0c;最经典的便是ConcurrentModificationException&#xff0c;原因是当容器迭代的过程中&#xff0c;被并发的修改了内容&#xff0c;这是由于早期迭代器设计的时候…

趣文:如果编程语言是车

C语言是全能手&#xff0c;小巧&#xff0c;强大&#xff0c;所向披靡&#xff0c;可靠&#xff0c;任何事情都能对付。 C是新的C&#xff0c;双倍的能力&#xff0c;双倍的尺寸&#xff0c;适应险恶的环境&#xff0c;但是你如果没练好就去驾驶&#xff0c;很可能会撞车。 C#是…

开发者应该了解的API技术清单!

摘要&#xff1a;有人说&#xff0c;有API的地方就有App&#xff0c;借助这些API开发者轻松构建出一款应用&#xff0c;极大地提高开发效率和开发质量。文中整理了一份API服务清单&#xff0c;内容涵盖&#xff1a;监控/调试、 CDN 、数据库、仪表盘、支付、通信等方面&#xf…

提高程序员职场价值的10大技巧

如果你已经是个很牛叉的程序员&#xff0c;但是依然觉得觉得还不够的话&#xff0c;欢迎阅读此文。本文旨在帮助各位更上一层楼。 你是不是觉得自己已经掌握了所有的编程技巧&#xff1f;别太自以为是了&#xff01; 会写代码的确很重要&#xff0c;但是要拿到更好薪水&#…