为了账号安全,请及时绑定邮箱和手机立即绑定

Docker的简要介绍及使用

标签:
Docker

Docker是一种操作系统层面的虚拟化技术,应用进程直接运行于宿主的内核,没有自己的内核,而且也没有进行硬件虚拟。

优点

  • 没有硬件虚拟以及运行完整操作系统等额外开销,更高效的利用系统资源

  • 直接运行于宿主内核,无需启动完整操作系统,秒级、毫秒级的启动时间

  • 一致的运行环境

  • 更轻松的迁移

  • 更轻松的维护和扩展

基本概念

  • 镜像: 特殊的文件系统,是容器创建时的模板,相当于面向对象中的类

  • 容器: 镜像运行时的实体,相当于面向对象中的对象,可以创建、启动、停止、删除、暂停等

  • 仓库: 包含不同软件、不同版本的仓库

安装 docker-ce(CE:社区版 EE:企业版)

CentOS

1.卸载旧版本

sudo yum remove docker docker-common docker-selinux docker-engine

2.安装依赖包

sudo yum install-y yum-utils device-mapper-persistent-data lvm2

3.添加yum国内源

sudo yum-config-manager--add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.更新yum软件源缓存

sudo yum makecache fast

5.安装 docker-ce

sudo apt-getinstall docker-ce

6.启动 docker

sudo systemctl enable docker sudo systemctl start docker

镜像

获取镜像

docker pull[选项][DockerRegistry地址]<仓库名>:<标签>

  • 选项: 可通过 docker pull --help 了解option

  • Docker Registry 地址: 默认 Docker Hub

  • 仓库名: <用户名>/<软件名>,对于 Docker Hub ,默认 library,也就是官方镜像

  • 标签: 软件版本

更新镜像

1.在原镜像的容器内,进行更改或更新

2.提交docker commit -m='进行了XXX的更新' -a='更新人' e218edb10161 ubuntu:v2

3.通过 docker images,查看新镜像

创建镜像

1.编写 Dockerfile 文件

runoob@runoob:~$ cat Dockerfile  FROM    centos:6.7 MAINTAINER      Fisher "fisher@sudops.com" RUN     /bin/echo 'root:123456' |chpasswd RUN     useradd runoob RUN     /bin/echo 'runoob:123456' |chpasswd RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local EXPOSE  22 EXPOSE  80 CMD     /usr/sbin/sshd -D

2.构建镜像

docker build-t ubuntu:v3.

  • -t:指定要创建的目标镜像名

  • . :指定Dockerfile文件目录

3.通过 docker images,查看新镜像

运行容器

docker run 只在不存在某个镜像的容器时使用,其他情况启动容器,docker start即可

运行容器,并执行 command

docker run ubuntu:15.10/bin/echo"Hello world"

运行交互式容器

docker run-i-t ubuntu:15.10/bin/bash

  • -i: 终端

  • -t: 交互式操作

进程方式运行容器(后台模式)
  • 后台运行容器,并返回容器id
    docker run-d ubuntu:14.04/bin/echo"hello lee"

  • 查找运行的容器
    docker ps

  • 查看容器的标准输出
    docker logs33fa4c2fc457

  • 停止容器
    docker stop33fa4c2fc457

命令汇总

1.查看本地主机的镜像

docker images

2.从 Docker Hub 查找镜像

docker search httpd

3.设置镜像标签

docker tag 860c279d2fec ubuntu:dev

4.删除镜像(必须先把镜像的所有容器删除)

docker rmi imageID

5.启动容器

docker start 7a38a1ad55c6

docker start determined_swanson

6.停止容器

docker stop 7a38a1ad55c6

docker stop determined_swanson

7.重启容器

docker restart 7a38a1ad55c6

docker restart determined_swanson

8.查看所有容器

docker ps -a

9.查看所有容器(只查找正在运行的容器)

docker ps

10.查询最后一次创建的容器

docker ps -l

11.删除容器(容器必须是停止状态)

docker rm determined_swanson

12.进入一个已经运行的容器

docker exec -it 860c279d2fec bash

13.查看容器配置信息和状态信息

docker inspect 7a38a1ad55c6

docker inspect determined_swanson

14.查看容器内运行的进程

docker top 7a38a1ad55c6

docker top determined_swanson

15.将容器内部的网络端口映射到宿主机

随机映射到主机端口 docker run -P training/webapp python app.py

映射到指定的主机端口 docker run -p 5000:5000 training/webapp python app.py

16.查看容器端口的映射情况

docker port 7a38a1ad55c6

docker port determined_swanson



作者:Lee_DH
链接:https://www.jianshu.com/p/e4d81e0dea03


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
50
获赞与收藏
175

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消