新手Docker入门

what's the Docker

  Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

  Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

  容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

 

Docker的应用场景

  • Web 应用的自动化打包和发布。

  • 自动化测试和持续集成、发布。

  • 在服务型环境中部署和调整数据库或其他的后台应用。

  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

 

Docker 安装及使用

安装 Docker

  • Ubuntu 安装 Docker
    sudo apt-get install docker.io # 安装docker
  • CentOS 安装 Docker
    # 安装之前,建议先yum -y upgrade更新软件包
    curl -sSL https://get.docker.com/ | sh
    # 由于国内墙的原因,如果安装官方脚本很慢,可以试试阿里云安装脚本:
    curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
  • Windows 安装 Docker:参考官方文档 https://docs.docker.com/toolbox/toolbox_install_windows/
    • 注:在Windows10上安装 Docker 是一件很坑的事,win10 企业版和专业版可以直接安装 Docker for Windows,但是 win10 家庭版需要安装 Docker Toolbox,Docker Toolbox 的原理是创建一台安装有 Docker 环境的 Linux 虚拟机,指定机器名称为 default。安装完成后会在桌面得到3个客户端,分别是 Oracle VM VirtualBox、Kitematic (Alpha) 和 Docker Quickstart Terminal,Oracle VM VirtualBox 用于查看虚拟机,Docker Quickstart Terminal 是一个终端工具用于启动 Docker。如果一切顺利的话,安装完成后双击 Docker Quickstart Terminal,你的 Docker 服务就起来了,但是!!!双击后你大概率会遇到卡在 waiting for an IP... 的位置,然后报错,处理方式自行GOOGLE吧,祝你好运。
  • MacOS 安装 Docker
    brew cask install docker

 

重启 Docker

service docker restart  
'''
如果不重启,docker pull时会有如下错误:
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon. Is the docker daemon running on this host?)...
'''

 

拉取 Ubuntu 或 CentOS镜像

sudo docker pull daocloud.io/ubuntu # 拉取一个ubuntu镜像到本地
sudo docker pull centos:7.2.1511    # 拉取一个CentOS 7.2镜像到本地

 

列出镜像

sudo docker images

 

记住上面两个镜像各自的 IMAGE ID,进入 Docker 时需要用到(删除镜像是同样也需要用到)

删除镜像

docker rm -f {image id}

 

装载镜像到容器并运行进入容器系统

sudo docker run -it -p 2221:22 -p 8880:80 7698f282e524 /bin/bash # 运行ubuntu容器系统
exit # 退出Ubuntu容器
sudo docker run -it -p 2221:22 -p 8880:80 9aec5c5fe4ba /bin/bash # 运行centos容器系统
exit # 退出CenOS容器
--name 指定容器名,"--name my_Ubuntu"指定容器名为"my_Ubuntu";
-p     映射端口,"-p 80:80"表示映射容器80端口到主机80端口,
       参数格式ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort | containerPort
-d     在后台运行,并打印container id
启动 Docker 时的几个参数

 

 

列出全部装载的容器,包括已停止的和正在运行的

sudo docker ps -a # -a 参数会列出停止的容器,不加-a只显示正在运行的容器

 

记住上面两个镜像各自的 CONTAINER ID,后台启动 Docker 时需要用

后台启动 / 关闭 Docker

sudo docker start 6d00698360eb # 后台启动容器
# sudo docker stop 6d00698360eb # 关闭后台启动的容器
sudo docker ps # 列出当前正在运行的容器
sudo docker attach 6d00698360eb # 进入当前容器

 

将一个容器打包成镜像并在其他电脑中加载这个镜像

  现在我有这么一个需求:我在另一台已经装了 Docker 的电脑B上开发了一个项目,项目在 Docker 的 Centos 容器里,我要把这个容器拎出来放到现在这台电脑A上,这样我就不用安装一大堆依赖,直接 run 就能运行项目了

  首先我在电脑B容器中 docker ps -a 看一下,有3个容器,开发的项目在第一个容器里,要将它打包成镜像放到电脑A中使用

打包命令

sudo docker export vigorous_hypatia >   /home/zmh/下载/centos7_sipenv.tar
# vigorous_hypatia 是要打包的容器的 NAMES,>后面跟的是打包后的文件存放的路径

 

然后我们就会得到一个centos7_sipenv.tar文件,把这个文件手动拷贝或者发送到电脑A,然后在电脑A中运行加载命令

cat '/home/aitester/centos7_sipenv.tar'  | docker import  - centos7_sipenv
# cat 后面跟的是tar文件的路径,import后面跟的是原来的 NAME

 

之后我们用 docker images 就能看到这个镜像已经被加载了

 

 

Docker手册其他链接

  Docker 命令大全 

  Docker CentOS容器开启 SSH 服务

  Docker 安装 MySQL 并实现远程连接

 

 

 

 

 

 参考:https://www.cnblogs.com/luyanjie/p/9656863.html

 

 

 

 

 

                 

转载于:https://www.cnblogs.com/zhuminghui/p/11045162.html

你可能感兴趣的:(新手Docker入门)