Docker

作者: 三点四行间 | 来源:发表于2018-12-01 01:20 被阅读0次

什么是Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

和虚拟机的区别

组成

Docker是一个C/S结构,由镜像,容器和仓库组成
容器是由镜像实例化而来,这和我们学习的面向对象的概念十分相似,我们可以把镜像看作类,把容器看作类实例化后的对象。

应用场景

  • 简化配置
  • 提高开发效率,不用部署环境
  • 快速部署
  • 代码流水线
  • 开发调试
  • 产品发布模式
  • 分布式集群
  • 存储过程储备数据

docker安装使用

使用docker前先sudo su 进入root超级用户
ubuntu安装docker

$ apt install -y docker.io

docker帮助文档

$ docker [options] --help

查看版本

$ docker -v

查看docker属性

$ docker info

docker启动

$ /etc/init.d/docker start

搜索centos镜像,第一个是官方镜像

$ docker search centos

拉取centos镜像

$ docker pull centos

如果拉取镜像出现TLS handshake timeout的报错,需要更换为国内镜像

https://blog.csdn.net/hhyihquk1/article/details/84099336

查询本地已存在的镜像

$ docker images

删除镜像

$ docker rmi [IMAGE ID]

运行centos容器echo命令

$ docker run centos /bin/echo "Hello World"

查看docker最新的容器

$ docker ps -l

运行并进入docker容器

$ docker run -it --name mydocker centos /bin/bash

在后台运行docker容器,如果没有该镜像会先下载

$ docker run -d --name myngixn nginx

启动/停止/删除容器进程

$ docker start 48bc8ba89baf
$ docker stop 48bc8ba89baf
$ docker rm 48bc8ba89baf  # 删除前需要先停止容器进程

批量停止/删除容器

$ docker stop $(docker ps -a -q)
$ docker rm $(docker ps -a -q)
$ sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'` 

进入docker容器

$ docker attach 5e9a3378955e  # 这种方式往往会失败,查看docker
$ docker inspect --format "{{.State.Pid}}" mynginx   # 先获取pid
$ nsenter --target 4281 --mount --uts --ipc --net --pid  # 再挂载进入

将进入docker容器做成脚本

#!/bin/bash
CNAME=$1
CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME)
nsenter --target "$CPID" --mount --uts --ipc --net --pid
./in.sh mynginx

返回docker对象信息

docker inspect volume-test1

格式化输出docker对象信息

docker inspect -f {{.Config.Volumes}} volume-test1
docker inspect volume-test1 | grep Mounts -A 10

docker网络访问

端口映射
随机映射

docker run -d -P --name mynginx nginx

指定映射

docker -d -p 91:80 --name mynginx1 nginx

docker数据管理

数据卷

-v /data
-v src:dst

数据卷示例

docker run -it --name volume-test1 -h centos -v /data centos  # 随机映射
docker run -it --name volume-test2 -h centos -v /opt:/opt centos  # 指定映射
docker run -it --name volume-test3 -h centos -v /opt:/opt:ro centos  # /opt:/opt:ro是只读,针对docker容器的只读,不影响物理主机

https://blog.csdn.net/qq_34173549/article/details/80400454 数据映射翻车记录
数据卷容器

--volumes-from 

数据卷容器示例

docker run -it --name volume-test5 --volumes-from volume-test4 -h centos centos

docker镜像构建

镜像构建实战(构建nginx镜像):

yum install -y wget gcc gcc-c++ make openssl-devel
wget http://nginx.org/download/nginx-1.17.5.tar.gz
wget ftp://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
mv *.gz /usr/local/src
cd /usr/local/src/
tar zxvf nginx-1.17.5.tar.gz
tar zxvf pcre-8.43.tar.gz
cd nginx-1.17.5
./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/src/pcre-8.43
make
make install
vi /usr/local/nginx/conf/nginx.conf
# daemon off;
# 退出镜像
docker commit -m "my nginx" 02b39f5b9e8c chenzejian/nginx:v1
docker images
docker run -d -p 99:80 chenzejian/nginx:v1

浏览器运行 http://192.168.1.126:99/

相关文章

  • docker学习

    docker镜像 docker容器 docker仓库 安装docker docker版本 docker分为社区版和...

  • Docker安装和运行

    获取Docker 安装Docker 验证安装 1、获取Docker Docker for Mac Docker f...

  • Docker知识手册

    Docker 容器 启动docker:docker start 查看docker运行状态:docker stats...

  • Docker简介

    章节介绍 # Docker是什么# Docker包括什么# Docker镜像# Docker编配# Docker还...

  • Docker 常用操作

    Docker docker: 18.09.4、nvidia-docker: 2.0.3 docker 19.03 ...

  • rancher+harbor离线安装

    安装docker,此docker为社区版docker。docker官方文档:https://docs.docker...

  • Linux之Docker

    Linux之Docker 目录 Docker简单介绍 在线Docker安装 离线Docker安装 Docker简单...

  • Docker常用命令

    Docker常用命令 Docker帮助命令 docker version:查看docker版本 docker in...

  • Docker基础操作

    Docker部署 Docker安装 镜像加速 Docker 基础命令 Docker镜像管理 搜索镜像docker ...

  • docker容器状态查看命令集

    docker inspect 用法 : docker inspect [docker名称/docker short...

网友评论

      本文标题:Docker

      本文链接:https://www.haomeiwen.com/subject/odflcqtx.html