Docker的简单使用

一、Docker简介

​ Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
一个完整的Docker有以下几个部分组成:

  • dockerClient客户端
  • Docker Image镜像
  • DockerContainer容器
  • Docker Daemon守护进程
  1. Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

  2. Docker与虚拟机

    首先,需要明白一点,Docker不是不是虚拟机,Docker与虚拟机有着不同的应用场景,Docker常常用于隔离不同应用,提供不同应用运行环境。虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。

1. 客户端

  1. 安装

    ​ 这里只简单的介绍在Ubuntu下的安装,Docker要求Ubuntu系统的内核版本高于3.10,使用uname -r 可以查看当前内核版本。

    ​ 现在的apt,apt-get已经比较强大了,使用apt-get install docker.io即可安装。

  2. 常用命令

    docker -v   #查看版本信息
    docker 		#查看所有命令选项
    docker 命令 --help   #查看命令的详细信息
    
  3. Hello World

    docker run ubuntu:15.10 /bin/echo "Hello world"		
    #可能会有点耗时,这是由于本地没有该镜像,需要下载
    #ubuntu:15.10:指定镜像,如果本地没有则会自动从镜像仓库 Docker Hub 下载公共镜像。
    #/bin/echo "Hello world":shell语句
    

2. 镜像(Images)

​ 镜像类似于面向对象编程中的类,也和操作系统的镜像文件类似,是用来创建容器的模板。

  1. 镜像的使用

    ​ 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。我们可以在网上(https://hub.docker.com/)查找镜像,也可以使用docker search … 来查找,然后使用docker pull … 来获取

    • 管理和使用本地Docker镜像

      docker images	#列出本地镜像
      #各个选项说明
      #    REPOSITORY:表示镜像的仓库源
      #    TAG:镜像的标签,表示镜像版本号,同一个镜像可以创建多个版本
      #    IMAGE ID:镜像ID
      #    CREATED:镜像创建时间
      #    SIZE:镜像大小
      docker pull 镜像名:版本号	#获取一个新的镜像
      
    • 创建镜像

      当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

      • 1.从已经创建的容器中更新镜像,并且提交这个镜像

        docker run -t -i ubuntu:15.10 /bin/bash		#运行镜像
        apt-get update	#更新
        exit	#退出
        docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
        #说明:-m:提交的描述信息,-a:指定的镜像作者
        #e218edb10161 runoob/ubuntu:v2分别是容器ID和要创建的镜像名和tag
        
      • 2.使用 Dockerfile 指令来创建一个新的镜像

        1. 创建镜像生成文件
        FROM    centos:6.7	#版本,Base Image可以从本地拉取也可以从公共库拉取
        MAINTAINER      Fisher "fisher@sudops.com"   #生成这个镜像的作者。
        
        #以下是在创建之前在这镜像中执行的语句
        RUN     /bin/echo 'root:123456' |chpasswd
        RUN     useradd runoob
        RUN     /bin/echo 'runoob:123456' |chpasswd
        RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
        EXPOSE  22
        EXPOSE  80
        CMD     /usr/sbin/sshd -D
        
        1. 使用Dockerfile生成镜像
        docker build -t runoob/centos:6.7 .
        #说明:-t :指定生成的镜像名和tag,
        	. :后接镜像生成文件路径,也可以指定绝对路径
        

3. 容器(Container)

​ 我的理解是一个运行中的镜像即为一个容器,一个镜像可以运行不同的应用,从而构成不同容器,容器不用像操作系统一样需要安装。

  1. 启动一个容器

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    [OPTIONS]:参数可选,可以指定后台运行,默认是不指定后台运行
    IMAGE:指定运行容器的镜像文件
    [COMMAND]:需要执行的任务
    eg:
    #1. 直接运行不指定参数,结果会直接输出
    docker run ubuntu:15.10 /bin/echo "Hello world"
    #2. 后台运行,-d:指定后台运行
    docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    #3.启动交互式容器,与远程登录了一台操作系统类似
    docker run -i -t ubuntu:15.10 /bin/bash
    

4. 容器连接

一般采用端口映射,在创建时指定

docker run -d -p 5000:5000	...
#说明:
-p:指定映射关系,如果不指定一般会随机映射,使用docker ps可以查看
例:0.0.0.0:32768->5000/tcp	将本机的容器的5000端口映射为主机的0.0.0.0:32768端口
完整格式为:
-p [ip:]port:port[/tcp/udp]

端口映射并不是唯一把 docker 连接到另一个容器的方法,docker 有一个连接系统允许将多个容器连接在一起,共享连接信息。docker 连接会创建一个父子关系,其中父容器可以看到子容器的信息。这里不再做介绍。

5. 常用命令

  1. 镜像管理

    docker images	#查看本地所有镜像
    docker rmi [OPTIONS] IMAGE [IMAGE...]	#删除一个或多个镜像
                -f :强制删除;
                --no-prune :不移除该镜像的过程镜像,默认移除;
    docker build [OPTIONS] PATH | URL | -   #用于使用 Dockerfile 创建镜像。
    			-t:创建的镜像名字及标签
    			-f:Dockerfile文件路径默认为当前路径
    			. :不明所以,必须有,
    docker pull [OPTIONS] NAME[:TAG|@DIGEST]	#获取镜像
    docker login -u ... -p ...			#登录
    docker push [OPTIONS] NAME[:TAG]			#上传到镜像仓库,需要先登录
    docker logout   #退出登录
    docker search [OPTIONS] TERM   #查找
    
  2. 容器相关

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]		#创建一个容器
    		-v $PWD/logs:/wwwlogs:文件映射,将主机中当前目录下的logs挂载到容器的/wwwlogs
    docker ps : 列出容器
    docker start :启动一个或多个已经被停止的容器
    docker stop :停止一个运行中的容器
    docker restart :重启容器
    docker kill [OPTIONS] CONTAINER [CONTAINER...]   #杀死一个运行中的容器
    docker logs [OPTIONS] CONTAINER
    

二、实例安装

1. 安装 Nginx

实例安装一遍即镜像的获取,可以使用pull获取也可以自定义创建,自定义创建这里不做介绍。

  1. 获取

    docker pull nginx		#获取
    docker images nginx		#查看
    
  2. 使用

    docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs  -d nginx
    说明:
    -p 80:80:将容器的80端口映射到主机的80端口
    --name mynginx:将容器命名为mynginx
    -v $PWD/www:/www:将主机中当前目录下的www挂载到容器的/www
    -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf
    -v $PWD/logs:/wwwlogs:将主机中当前目录下的logs挂载到容器的/wwwlogs
    

2. 安装其他实例

docker pull php #安装php
docker pull mysql #安装mysql
docker pull tomcat
docker pull python:3.5
...

使用总结:

–name:重命名

-p:端口映射

-v:文件映射

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化技术,它能够将应用程序及其依赖项打包成一个独立的容器,使其能够在不同的环境中进行部署和运行。以下是Docker简单使用方法: 1. 首先,你需要安装Docker Desktop,它是Docker的图形化工具,可以简化Docker使用过程。可以通过官方网站下载并安装。 2. 安装完成后,启动Docker Desktop。在桌面或任务栏上找到Docker图标并点击打开。 3. 一旦Docker Desktop启动,你就可以使用Docker命令行工具(Docker CLI)或Docker图形界面来管理和操作Docker。 4. 使用Docker CLI时,你可以使用各种命令来创建、运行和管理Docker容器。例如,使用"docker pull"命令从Docker仓库中下载一个镜像,使用"docker run"命令来运行一个容器使用"docker ps"命令来查看正在运行的容器等。更详细的Docker命令可以通过在网上搜索获得。 5. 此外,你可以使用"docker attach"命令或"docker exec"命令来进入正在运行的容器并以命令行交互。这将允许你在容器内执行命令和查看容器的日志。 总结:Docker简单使用方法包括安装Docker Desktop,使用Docker CLI执行各种命令来管理和操作Docker容器,以及使用"docker attach"或"docker exec"命令进入正在运行的容器进行命令行交互。希望这些信息能对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [docker简单使用](https://blog.csdn.net/qq_50626505/article/details/124214734)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [docker简单使用](https://blog.csdn.net/weiweixiao3/article/details/82224715)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值