Docker初识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker初识相关的知识,希望对你有一定的参考价值。

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

VM,全称虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

资源隔离不如VM彻底

虚拟机技术相对已经非常成熟,而Docker技术正处于快速发展中。虚拟机技术通过Hypervisor对底层硬件进行虚拟化,从而实现对底层资源的占用,创建出一个完整的操作系统。而Docker直接运行在HOST的内核之上,因为它自己没有内核,它底层基于LXC技术实现,结合NameSpaces、CGroups、Chroot、AUFS等技术对HOST的计算,网络,存储等资源进行隔离占用,从而实现了一个基于HOST的轻便,灵活,低开销的虚拟化应用容器环境。

点击

Docker_1-初识Docker

CentSO-7

一 安装 :

检测内核版本3.10及以上: uname -r

安装: yum install docker

确认: y

systemctl start docker

docker -v


systemctl stop docker


https://hub.docker.com


二 常用命令:

检索: docker search mysql

列表: docker images

拉取: docker pull mysql

删除: docker rmi image-id

批量删除: docker rmi -f $(docker images -qa)


tomcat:

拉取: docker pull tomcat

查看镜像: docker images

启动容器: docker run --name mytomcat -d tomcat 后台运行

查看容器: docker ps

停止容器: docker stop 

查看整个: docker ps -a 

启动容器: docker start 

删除容器: docker rm 

端口映射: docker run -p 主机端口映射到容器内部的端口


service firewalld status

service firewalld stop


docker logs

docker pull mysql:5.5


mysql:

docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

docker ps

docker stop


docker run -p 3306:3306 --name m ysql01 -e MYSQL_

ROOT_PASSWORD=123456 -d mysql


端口映射:

docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.5


进入容器:docker exec -it mysql01 bash

进入客户端 mysql -u root -p


镜像: image

容器: container

仓库: repository


docker好处:

1 更少的抽象层

2 不需要和虚拟机一样重新加载一个操作系统内核

3 共享OS,镜像小,便于存储,几乎无损耗,移植性好,面向软件开发,快速秒级


帮助命令: 

docker version

docker info

docker --help


镜像文件: 

docker images

docker search

-a: 列出本地所有镜像

-q: 显示镜像ID

--digests: 显示镜像摘要

--no-trunc: 显示完整镜像信息


容器命令: 

docker run IMAGE

--name: 指定容器名称

-d: 后台运行

-i: 以交互模式运行容器

-t: 为容器重新分配一个伪输入终端

-P: 随机端口映射

-p: 指定端口映射


进入伪容器: docker run -it 

ls

pwd

ps -ef


列出所有容器: docker ps

-a

-l

-n

-q

--no-trunc

退出: exit | ctrl+P+Q


docker start

docker restart

docker stop

docker kill

docker rm

docker rm -f $(docker ps -a -q)


守护式容器: docker run -d

查看容器日志: docker logs -f -t --tail

查看容器内进程: docker top

查看容器内部细节: docker inspect

docker run -it centos

pwd

docker attach 

ls -l

exit

docker exec -t ls -l /home

docker cp


docker commit

docker commit -m


docker run -it -p 8080:8080 tomcat


容器数据卷: 

宿主机和容器间数据共享


容器持久化,容器间继承+共享数据


容器内添加: 

1 直接命令添加

docker run -it -v /

docker run -it -v /myDateVolume: /datavolumeContainer centos


docker run -it -v /myDateVolume: /datavolumeContainer :ro centos 只读


2 DockerFile添加

1) 手动编写一个dockerfile文件,符合file的规范

2) docker build -f  /mydocker/Dockerfile -t zzyy/centos

3) run


容器间传递共享: --volumes-from

容器间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止


DockerFile用来构建Docker镜像的构建问价,是由一系列命令和参数构成的脚本

1 编写Dockerfile文件

2 docker build

3 docker run


DockerFile体系结构:

FROM

MAINTAINER

RUN

EXPOSE

WORKDIR

ENV

ADD

COPY

VOLUME: 容器数据卷,用于数据保存和持久化工作

CMD: 指定一个容器启动时要运行的命令

-有多个命令,但只有最后一个生效

ENTRYPOINT: 指定一个容器启动时要运行的命令

-追加命令

ONBUILD


批量删除容器: docker rm -f $(docker ps -q) 

docker run -it centos /bin/bash


dockerfile:

1 vim Dockerfile1

FROM centos

MAINTAINER mm<mm@qq.com>

ENV MYPATH /usr/local

WORKDIR $MYPATH

RUN yum -y install vim

RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH

CMD echo "success=====ok"

CMD /bin/bash


2 docker build -t  /mydocker/Dockerfile1 mycentos:1.3.


docker images


3 docker run -it mycentos:1.3


pwd | ll | docker history


tomcat

docker run -it -p 8080:8080 tomcat

curl http://www.baidu.com



yum -y install gcc

yum -y install gcc-c++



以上是关于Docker初识的主要内容,如果未能解决你的问题,请参考以下文章

从零开始学习Docker (初识Docker)

初识Docker

Docker初识

Docker初识

Docker学习之旅--初识docker

Docker学习之旅--初识docker