Docker 学习

ps:本文只是一个备忘demo,不能起到帮助您学习docker的目的,望周知!!

基本概念

Docker 包括三个基本概念:
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

快速入门(基本使用)

运行交互式的容器
docker run -it centos /bin/bash
-t: 在新容器内指定一个伪终端或终端
-i: 允许你对容器内的标准输入进行交互
-d:后台运行
-P:将容器内部使用的网络端口随机映射到我们使用的主机上。

启动容器 (后台模式)
docker run -d centos /bin/sh -c "cmd or shell cmd"
后台运行不会进入容器,想要进入容器需要使用指令docker exec

查看容器运行状况
docker ps
-l查看最后一次创建的容器
输出详情介绍:

  1. CONTAINER ID: 容器 ID。
  2. IMAGE: 使用的镜像。
  3. COMMAND: 启动容器时运行的命令。
  4. CREATED: 容器的创建时间。
  5. STATUS: 容器状态。
    状态有7种:
    created(已创建)
    restarting(重启中)
    running 或 Up(运行中)
    removing(迁移中)
    paused(暂停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
    NAMES: 自动分配的容器名称。

停止容器
docker stop container_id

查看容器日志
docker logs container_id

docker 容器的使用
获取镜像

docker pull ubuntu

启动容器

docker run -it ubuntu /bin/bash

启动已停止运行的容器

docker ps -a 查看所有容器(包括已经停止运行的容器)
使用docker start 启动一个已经停止的容器

重启一个容器

docker restart <容器id>

进入容器

docker attach 进入容器, 但退出容器时会导致容器停止
docker exec 进入容器,退出容器时不会导致容器停止
在这里插入图片描述

导出和导入容器

导出 docker export container_id > file_name
导入cat backup_name | docker import - test/centos:tag_name
docker import http://example.com/exampleimage.tgz example/imagerepo
查看导入镜像
docker images

删除容器

docker rm -f container_id

信息查看

查看容器进程 docker top + id
检查容器,察看docker底层信息 docker inspect + id

Docker 镜像使用
列出本地镜像列表

docker images
在这里插入图片描述

搜索镜像

docker search xxxx 如 docker search httpd

镜像删除

docker rmi 镜像名

创建镜像

1.对于更改后的容器,执行docker commit -m="" -a="" container_id image_name
2.docker build -t runoob/centos:6.7 .
“-t” : 指定要创建的目标镜像名
“.” :Dockerfile文件所在目录,可以指定Dockerfile的绝对路径

给镜像打标签

docker tag image_id image_name:tag

Docker 容器连接
网络端口映射

我们也可以使用 -p 标识来指定容器端口绑定到主机端口。
两种方式的区别是:
-P :是容器内部端口随机映射到主机的高端口。
-p : 是容器内部端口绑定到指定的主机端口。
docker run -d -p 5000:5000 training/webapp python app.py
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

察看端口的绑定情况

docker port
在这里插入图片描述

docker容器互联

docker 连接会创建一个父子关系,其中父容器可以看到子容器的信息。

容器命名
docker run -d -P --name dockertest training/webapp python app.py

新建一个新的Docker 网络
docker network create -d bridge test-net
参数说明:
-d:参数指定 Docker 网络类型,有 bridge、overlay。
其中 overlay 网络类型用于 Swarm mode
察看网络 docker network ls

运行一个容器并连接到新建的test-net网络中
在这里插入图片描述

Docker 仓库管理

注册
在 https://hub.docker.com 免费注册一个 Docker 账号。
登录和退出
登录需要输入用户名和密码,登录成功后,我们就可以从 docker hub 上拉取自己账号下的全部镜像。
$ docker login
推送镜像
docker push

Dockerfile构建镜像
FROM centos
RUN yum install wget
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
RUN tar -xvf redis.tar.gz
以上执行会创建 3 层镜像。可简化为以下格式:
FROM centos
RUN yum install wget \
    && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
    && tar -xvf redis.tar.gz

开始构建
docker build -t nginx:v3 .
ps:感觉参数有点复杂 以后涉及再学吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值