Docker环境搭建-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

Docker环境搭建

简介: MacOS MacOS 我们可以使用 Homebrew 来安装 Docker。 下载docker桌面版https://www.docker.com/get-started 鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,需要配置国内镜像地址 阿里云:https://<你的ID>.mirror.aliyuncs.com,如:https://

MacOS

  1. MacOS 我们可以使用 Homebrew 来安装 Docker。
    1. 下载docker桌面版https://www.docker.com/get-startedimage.png
  1. 鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,需要配置国内镜像地址

20201027121231.jpg

{
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "https://zjy67cgc.mirror.aliyuncs.com"
  ]
}
  1. 下载镜像:https://docker.alibaba-inc.com/#/imageList
    • docker pull reg.docker.alibaba-inc.com/iot-warp/node-red:1.2.2
  2. 下载服务:http://gitlab.alibaba-inc.com/haas-studio/ms-studio
  3.  启动docker
    • docker run -d -i -t --rm --name="ms-studio" -p 50002:1880 -p 52202:22 -v /Users/dan.wu/work/study/node-red/ms-studio:/data reg.docker.alibaba-inc.com/iot-warp/node-red:1.0.1

Ubuntu

2种安装方式都可以

  1. 自动安装:
  • curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  • curl -sSL https://get.daocloud.io/docker | sh

 

  1. 手动安装(这里是中国科技大学的源为例
  • 安装依赖包:sudo apt-get install apt-transport-https ca-certificates  curl gnupg-agent software-properties-common
  • 添加 Docker 的官方 GPG 密钥:curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
  • 设置稳定版仓库:sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/   $(lsb_release -cs)   stable"
  • 更新包索引:sudo apt-get update
  • 卸载旧版本(如之前安装过可选):sudo apt-get remove docker docker-engine docker.io containerd runc
  • 安装最新版本的 Docker Engine-Community和containerd:sudo apt-get install docker-ce docker-ce-cli containerd.io

 

  1. 验证环境:
$ sudo docker run hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete                                                                                                                                  Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

 

  1. 镜像加速

对于使用 systemd 的系统(Ubuntu16.04+、Debian8+、CentOS7)

请访问阿里云线上地址 https://cr.console.aliyun.com/#/docker/booster 获取你的加速器

请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
$ sudo /etc/docker/daemon.json
    添加:{"registry-mirrors":[
            "https://reg-mirror.qiniu.com/",
            "https://<你的阿里云id>.mirror.aliyuncs.com"
        ]}
  
重新启动服务:
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
  1. 给docker添加sudo权限
$ sudo groupadd docker
$ sudo gpasswd -a <你的用户名> docker
$ sudo service docker restart
退出shell 重新进入即可

Docker常用命令

docker run用来运行一个容器

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

  • docker: Docker 的二进制执行文件。
  • run: 与前面的 docker 组合来运行一个容器。
  • ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • /bin/echo "Hello world": 在启动的容器里执行的命令

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

  • -t: 在新容器内指定一个伪终端或终端。
  • -i: 允许你对容器内的标准输入 (STDIN) 进行交互。

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

  • -d: 在新容器运行在后台。

docker ps 来查看容器进程:

  • CONTAINER ID: 容器 ID。
  • IMAGE: 使用的镜像。
  • COMMAND: 启动容器时运行的命令。
  • CREATED: 容器的创建时间。
  • STATUS: 容器状态。
    • created(已创建)
    • restarting(重启中)
    • running 或 Up(运行中)
    • removing(迁移中)
    • paused(暂停)
    • exited(停止)
    • dead(死亡)

docker logs 查看容器内的标准输出

docker images 来列出本地主机上的镜像。

docker pull 下载容器镜像,会根据你配置的镜像仓库地址来下载镜像

阿里云镜像仓库: https://docker.alibaba-inc.com/#/imageList

阿里云容器镜像服务:https://cr.console.aliyun.com/

如: docker pull reg.docker.alibaba-inc.com/iot-warp/node-red:1.2.2

有时候报latest not found: manifest unknown: manifest unknown,说明找不到latest版本,请带上版本号

 

制作docker镜像

当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

1.commit方式:基础镜像运行生成容器,容器中安装需要工具,提交镜像。

  • 登录阿里云容器镜像服务
    • 创建镜像仓库,并使用本地代码源(即通过本地上传的方式,上传镜像)
    • 在“访问凭证”标签里设置固定密码
  • 先用docker run运行一个基础的容器镜像,如ubuntu:16.04
    • 在容器里做一些更新:如安装一些工具,软件包,下载一些源代码
    • exit命令退出容器
  • docker ps -a查看刚才修改过的容器,找到id,如e218edb10161
  • docker commit -m="has update" -a="shenping.sp" e218edb10161 runoob/ubuntu:v2
    • -m: 提交的描述信息
    • -a: 指定镜像作者
    • e218edb10161:容器 ID
    • runoob/ubuntu:v2: 指定要创建的目标镜像名
  • 使用docker imags查看imageID
  • 将镜像推送到Registry:
    • $ sudo docker login --username=iotx_develop_hacklab registry.cn-shanghai.aliyuncs.com
    • $ sudo docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/haas-studio/codebase:[镜像版本号]
    • $ sudo docker push registry.cn-shanghai.aliyuncs.com/haas-studio/codebase:[镜像版本号]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章