首页 > 其他 > 详细

今日份学习: Docker 和 Docker的使用

时间:2020-02-13 17:28:11      阅读:59      评论:0      收藏:0      [点我收藏+]

笔记

Docker 能做什么?

  • 保证开发、测试、交付、部署的环境完全一致
  • 保证资源的隔离
  • 启动临时的、用完即弃的环境,例如测试
  • 迅速(秒级)超大规模部署和扩容

Docker 基本概念

  • 镜像 image

    预先定义好的模板文件,Docker引擎按照这个模板启动无数个容器
  • 容器 container

    独立的,默认和宿主机不发生任何交互

docker <镜像名> <镜像中要运行的命令和参数>

docker pull/images

  • docker pull:下载指定镜像。比如:docker pull mysql:8.0.1

    默认从docker的中央仓库找,也可以指定镜像仓库:镜像仓库/镜像名:tag
  • docker images:查看本地已有的镜像。

docker run/ps

  • docker run:装在镜像成为一个容器

    每个容器有一个ID,支持缩写。
    两种主要的运行模式:
  • docker run -it <镜像名> <镜像中要运行的命令和参数>
  • docker run -d <镜像名> <镜像中要运行的命令和参数>
参数 含义
-i 以交互模式运行容器,通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d 后台运行(daemon模式)容器,并返回容器ID;
--name 为容器指定一个名字
--restart=always 遇到错误自动重启
-v <本地文件:<容器文件> 文件映射(可以设置权限,比如:<容器文件>:rw)
-p <本地端口>:<容器端口> 端口映射
-e NAME=VALUE 环境变量(environment)

例子:比如启动一个mysql
docker run --name mysql -v e:\docker:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:8.0.18

docker start/stop

启动/停止一个容器

docker rm

删除容器

  • docker rm xxx

    rm -f 参数:强制

  • docker rmi 镜像id

    删除镜像

docker exec

exec: 执行
指定目标容器,进入容器执行命令,调试等。

  • docker exec -it <容器id> <容器内要运行的命令和参数>

    例如:docker exec 容器ID bash

docker logs

  • docker logs <容器ID/容器名>

    查看目标容器的输出

    -f 跟踪实时日志(follow)

docker inspect

  • docker inspect <容器ID/>

    查看容器的详细状态

dockerfile 和 镜像仓库

docker镜像默认分层,为了复用。
例如(ubantu的dockerfile):

#
# Ubuntu Dockerfile
#
# https://github.com/dockerfile/ubuntu
#

# Pull base image.
FROM ubuntu:14.04

# Install.
RUN   sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list &&   apt-get update &&   apt-get -y upgrade &&   apt-get install -y build-essential &&   apt-get install -y software-properties-common &&   apt-get install -y byobu curl git htop man unzip vim wget &&   rm -rf /var/lib/apt/lists/*

# Add files.
ADD root/.bashrc /root/.bashrc
ADD root/.gitconfig /root/.gitconfig
ADD root/.scripts /root/.scripts

# Set environment variables.
ENV HOME /root

# Define working directory.
WORKDIR /root

# Define default command.
CMD ["bash"]

Dockerfile

指定镜像如何生成。

写一个自己的Docker:

FROM centos:7
#FROM ubantu:16.04

RUN yum -y install nginx
#RUN apt-get update && apt-get -y install nginx

RUN echo "Hello" > /usr/share/nginx/html/index.html

EXPOSE 80     
#暴露80端口
  1. 然后 docker build 写好的文件
  2. docker run -p 8080:80 镜像ID
  3. docker ps
  4. docker tag 镜像ID name:tag (可以指定push到哪里去,例如:docker tag 镜像ID 127.0.0.1:5000/name:tag)
  5. docker push (如果是127.0.0.1,前提是执行了下面的registry,部署了私服才可以)
  6. 可以访问一下浏览器:localhost:5000/v2/name/tags/list
  7. 现在可以docker pull了

记录一个好玩的:

  • 部署 Docker私服
    docker run -d -p 5000:5000 --restart always --name registry registry:2
  • 镜像仓库设置
-- registry-mirror:指定镜像源
-- insecure-registry:使用HTTP方式(默认HTTPS)

技术分享图片


K8s(Kubernetes)

Kubernetes(K8s)是一个开源系统,用于自动化容器化应用程序的部署,扩展和管理。

今日份学习: Docker 和 Docker的使用

原文:https://www.cnblogs.com/pipemm/p/12300761.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!