前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker 实践答疑

Docker 实践答疑

作者头像
飞奔去旅行
发布2019-06-13 16:13:18
6570
发布2019-06-13 16:13:18
举报
文章被收录于专栏:智慧协同

基础用法

docker run 提示错误

代码语言:javascript
复制
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

解决方法:docker 服务未运行,请开启:

代码语言:javascript
复制
sudo service docker start

安装docker web管理界面程序shipyard

shipyard提供了管理界面管理各种docker资源。 项目地址:https://github.com/shipyard/shipyard。 安装方法:

代码语言:javascript
复制
curl -s https://shipyard-project.com/deploy | bash -s

安装完成后默认登录用户名密码为:admin/shipyard,界面如下:

image.png

docker ps 和docker ps -a

  • docker ps:列出正在运行的容器。
  • docker ps -a:列出所有容器,包括正在运行和停止的。

创建守护式容器

守护式容器是指后台长期运行的容器,没有交互式会话,适合长期运行的服务,如web程序。 使用-d参数可以将容器放到后台运行,如:

代码语言:javascript
复制
docker run --name webserver -d nginx

使用阿里云镜像加速器加速docker

对于使用 systemd (ubuntu 16.04)的系统,用 systemctl enable docker 启用服务后,编辑 /etc/systemd/system/multi-user.target.wants/docker.service 文件,找到 ExecStart= 这一行,在这行最后添加加速器地址 --registry-mirror=<加速器地址> ,如:

代码语言:javascript
复制
ExecStart=/usr/bin/dockerd --registry-mirror=https://v2kdqv13.mirror.aliyuncs.com

注:对于 1.12 以前的版本,dockerd 换成 docker daemon

重新加载配置并且重新启动。

代码语言:javascript
复制
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

检查加速器是否生效

Linux系统下配置完加速器需要检查是否生效,在命令行执行 ps -ef | grep dockerd,如果从结果中看到了配置的 --registry-mirror 参数说明配置成功。

代码语言:javascript
复制
$ sudo ps -ef | grep dockerd
root   5346   1  0 19:03 ?    00:00:00 /usr/bin/dockerd --registry-mirror=https://v2kdqv13.mirror.aliyuncs.com

将宿主机目录挂在到docker Nginx镜像进行静态网站测试

如宿主机当前目录为website,我们想将其挂在到Nginx容器中,当修改本地website中内容时,站点内容随时刷新为本地内容,启动挂在方法如下:

代码语言:javascript
复制
docker run -d -p 80:80 --name webserver -v $PWD/website:/usr/share/nginx/html:ro nginx

同时使Nginx容器/usr/share/nginx/html目录变为只读。

数据卷容器

如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。

数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。

基本用法

首先,创建一个名为 dbdata 的数据卷容器:

代码语言:javascript
复制
$ sudo docker run -d -v /dbdata --name dbdata training/postgres echo Data-only container for postgres

然后,在其他容器中使用 --volumes-from 来挂载 dbdata 容器中的数据卷。

代码语言:javascript
复制
$ sudo docker run -d --volumes-from dbdata --name db1 training/postgres
$ sudo docker run -d --volumes-from dbdata --name db2 training/postgres

可以使用超过一个的 --volumes-from 参数来指定从多个容器挂载不同的数据卷。 也可以从其他已经挂载了数据卷的容器来级联挂载数据卷。

代码语言:javascript
复制
$ sudo docker run -d --name db3 --volumes-from db1 training/postgres

注意:使用 --volumes-from 参数所挂载数据卷的容器自己并不需要保持在运行状态。

如果删除了挂载的容器(包括 dbdata、db1 和 db2),数据卷并不会被自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时使用 docker rm -v 命令来指定同时删除关联的容器。 这可以让用户在容器之间升级和移动数据卷。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.05.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • docker run 提示错误
  • 安装docker web管理界面程序shipyard
  • docker ps 和docker ps -a
  • 创建守护式容器
  • 使用阿里云镜像加速器加速docker
  • 将宿主机目录挂在到docker Nginx镜像进行静态网站测试
  • 数据卷容器
    • 基本用法
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档