容器-docker学习

169 阅读2分钟

docker简介

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

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

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

安装docker

  • ubuntu

    Docker 要求 CentOS 系统的内核版本高于 3.10 , 通过 uname -r 命令查看你当前的内核版本

    wget -qO- https://get.docker.com/ | sh

  • Centos

    Docker 要求 CentOS 系统的内核版本高于 3.10 , 通过 uname -r 命令查看你当前的内核版本

    yum install docker

  • MacOs

    使用Homebrew安装

    brew cask install docker

  • 关于镜像加速的配置

    网易的镜像地址:hub-mirror.c.163.com

    /etc/docker/daemon.json下配置文件如下:

    "registry-mirrors": ["http://hub-mirror.c.163.com"]
    

Docker常见命令

docker常见命令

  • 本地启动docker服务(以ubuntu为例)

    service docker start/stop/restart

  • 开机自启动docker

    service docker enable

  • 搜索远程仓库中的docker镜像

    docker search 镜像名称(mysql)

  • 查看本地docker镜像

    docker images

  • 拉取远程docker镜像名称

    docker pull 镜像名称(mysql):镜像版本(latest) // 默认为最近的版本latest

  • 删除某个镜像

    Docker rmi image-name/image-id

  • 启动docker镜像

    • 普通启动

      docker run --name my-docker-name -d tomcat:tag

      --name: 运行的容器名称(my-docker-name)-自定义

      -d: 服务在后台运行

      tomcat: 运行的镜像名称 :tag => 运行本地某个版本的镜像

    • 端口映射的启动

      docker run --name my-docker-name -d -p 8888:8080 tomcat

      -p: 表示将docker主机(本地)的某个端口映射到容器内的某个端口,即在此处表示:访问本地主机的8888端口即表示访问docker容器内的8080端口

    • mysql类似的带参启动

      docker run --name my-docker-name -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456

      -e 运行容器的时候同时执行这个命令

    • mysql的指定配置文件启动

      docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

      -v 将本地主机/my/custom路径下的mysql配置文件挂载到容器内/etc/mysql/conf.d的配置文件

  • 查看本地docker运行中的容器

    docker ps

  • 查看本地运行的所有容器(包括运行的、停止的以及意外退出的)

    docker ps -a

  • 重新运行/停止某个docker容器

    docker start/stop/restart containerID/container-name

  • 查看某个容器的日志

    docker logs containerID/container-name

具体的各镜像的配置文档见docker hub 文档

创建自己的docker镜像并发布

docker部署自己的nodejs项目