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初识的主要内容,如果未能解决你的问题,请参考以下文章