文档章节

快速启动 containers

Ryan-瑞恩
 Ryan-瑞恩
发布于 2015/12/21 11:57
字数 1036
阅读 33
收藏 1

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

快速启动containers

This quickstart assumes you have a working installation of Docker. To verify Docker is installed, use the following command:

# 检查Docker 是否安装
$ docker info 

If you get docker: command not found or something like/var/lib/docker/repositories: permission denied you may have an incomplete Docker installation or insufficient privileges to access Docker on your machine. With the default installation of Docker docker commands need to be run by a user that is in the docker group or by the root user.

Depending on your Docker system configuration, you may be required to preface each docker command with sudo. One way to avoid having to use sudo with thedocker commands is to create a Unix group called docker and add users that will be entering docker commands to the ‘docker’ group.

For more information about installing Docker or sudo configuration, refer to theinstallation instructions for your operating system.

下载已建立 image

# 下载 ubuntu 镜像
$ docker pull ubuntu

This will find the ubuntu image by name on Docker Hub and download it fromDocker Hub to a local image cache.

Note: When the image is successfully downloaded, you see a 12 character hash539c0211cd76: Download complete which is the short form of the image ID. These short image IDs are the first 12 characters of the full image ID - which can be found using docker inspect or docker images --no-trunc=true.

运行交互式 shell

使用ubuntu镜像运行交互式Shell:

$ docker run -i -t ubuntu /bin/bash

The -i flag starts an interactive container. The -t flag creates a pseudo-TTY that attaches stdin and stdout.

To detach the tty without exiting the shell, use the escape sequence Ctrl-p +Ctrl-q. The container will continue to exist in a stopped state once exited. To list all containers, stopped and running, use the docker ps -a command.

Bind Docker to another host/port or a Unix socket

Warning: Changing the default docker daemon binding to a TCP port or Unixdocker user group will increase your security risks by allowing non-root users to gain root access on the host. Make sure you control access to docker. If you are binding to a TCP port, anyone with access to that port has full Docker access; so it is not advisable on an open network.

With -H it is possible to make the Docker daemon to listen on a specific IP and port. By default, it will listen on unix:///var/run/docker.sock to allow only local connections by the root user. You could set it to 0.0.0.0:2375 or a specific host IP to give access to everybody, but that is not recommended because then it is trivial for someone to gain root access to the host where the daemon is running.

Similarly, the Docker client can use -H to connect to a custom port. The Docker client will default to connecting to unix:///var/run/docker.sock on Linux, andtcp://127.0.0.1:2376 on Windows.

-H accepts host and port assignment in the following format:

tcp://[host]:[port][path] or unix://path

For example:

  • tcp:// -> TCP connection to 127.0.0.1 on either port 2376 when TLS encryption is on, or port 2375 when communication is in plain text.
  • tcp://host:2375 -> TCP connection on host:2375
  • tcp://host:2375/path -> TCP connection on host:2375 and prepend path to all requests
  • unix://path/to/socket -> Unix socket located at path/to/socket

-H, when empty, will default to the same value as when no -H was passed in.

-H also accepts short form for TCP bindings:

`host:` or `host:port` or `:port` 

Run Docker in daemon mode:

$ sudo <path to>/docker daemon -H 0.0.0.0:5555 &

Download an ubuntu image:

$ docker -H :5555 pull ubuntu

You can use multiple -H, for example, if you want to listen on both TCP and a Unix socket

# Run docker in daemon mode $ sudo <path to>/docker daemon -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock & # Download an ubuntu image, use default Unix socket $ docker pull ubuntu # OR use the TCP port $ docker -H tcp://127.0.0.1:2375 pull ubuntu

Starting a long-running worker process

# Start a very useful long-running process $ JOB=$(docker run -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done") # Collect the output of the job so far $ docker logs $JOB # Kill the job $ docker kill $JOB

列表 containers查看

$ docker ps # 列出所有运行中镜像
$ docker ps -a # 列表所有镜像

Controlling containers

# Start a new container $ JOB=$(docker run -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done") # Stop the container $ docker stop $JOB # Start the container $ docker start $JOB # Restart the container $ docker restart $JOB # SIGKILL a container $ docker kill $JOB # Remove a container $ docker stop $JOB # Container must be stopped to remove it $ docker rm $JOB

Bind a service on a TCP port

# Bind port 4444 of this container, and tell netcat to listen on it $ JOB=$(docker run -d -p 4444 ubuntu:12.10 /bin/nc -l 4444) # Which public port is NATed to my container? $ PORT=$(docker port $JOB 4444 | awk -F: '{ print $2 }') # Connect to the public port $ echo hello world | nc 127.0.0.1 $PORT # Verify that the network connection worked $ echo "Daemon received: $(docker logs $JOB)"

Committing (saving) a container state

Save your containers state to an image, so the state can be re-used.

When you commit your container, Docker only stores the diff (difference) between the source image and the current state of the container’s image. To list images you already have, use the docker images command.

# Commit your container to a new named image
$ docker commit <container> <some_name>

# List your images
$ docker images 

You now have an image state from which you can create new instances.

下一步去这里

© 著作权归作者所有

Ryan-瑞恩

Ryan-瑞恩

粉丝 152
博文 245
码字总数 189651
作品 0
西安
后端工程师
私信 提问
【卡片记忆】快速启动iOS模拟器

假定场景 查看模拟器的日志目录 模拟器目录 解决方案 引用链接:点击 获取帮助 创新源于一种感觉! http://go-swift.net

创意总监
2016/03/09
130
0
kubernetes 1.6.2部署

部署环境服务器:腾讯云 操作系统版本:centos 7.2 1、修改系统配置: [root@node1~]# cat /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables= 1net.bridge.bridge-nf-call-ipta......

小罗ge11
2017/06/19
0
0
Docer 和虚拟机的一些对比 [翻译]

本文翻译自:《Docker: Git for deployment -- Scout》,个人感觉它的内容和标题不对,所以就没有直译过来,要是我理解错了请帮忙纠正。 我听说了 多么令人惊叹,但是它并没有征服我的心,直...

BearCatYN
2015/03/30
102
0
一步步打造专属于自己的Kubernetes-1.8.4集群环境

一 kubernetes kubernetes 以下介绍摘自Wiki Kubernetes (通常称为K8s) 是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。Google设计并捐赠给Cloud Native Computing ...

胖宝宝王
2017/12/08
0
0
高性能容器伺服器-containerd简介

containerd是一个高性能的容器(container)伺服系统(查看源码),部分功能与Docker很像,相当于Docker Daemon模式和更新版的DockerD。 containerd采用并行启动技术,可以每秒启动上百个容器...

openthings
2016/12/12
261
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么面试必问线程状态?你的回答满分了吗

看很多同学的面经、网上的面试资料,都不约而同的提到了一个基础问题:“你知道线程有几种状态吗?状态之间的扭转是怎样的?”,有准备的同学都知道有五种:New(新建)、Runnable(可运行)...

Z_J_H
23分钟前
4
0
如何保障云上数据安全?一文详解云原生全链路加密

点击下载《不一样的 双11 技术:阿里巴巴经济体云原生实践》 本文节选自《不一样的 双11 技术:阿里巴巴经济体云原生实践》一书,点击上方图片即可下载! 作者 李鹏(壮怀)阿里云容器服务高...

阿里巴巴云原生
23分钟前
3
0
获取数组的第一个元素

我有一个数组: array( 4 => 'apple', 7 => 'orange', 13 => 'plum' ) 我想获得此数组的第一个元素。 apple 预期结果: apple 一个要求: 它不能通过引用传递来完成 ,所以array_shift不是一......

javail
25分钟前
4
0
哈希情史知多少

<p align="right">——日拱一卒,不期而至!</p> 简介 hash是我们工作中经常听到的词,比如哈希表、哈希函数、hashCode、HashTable、HashMap等等,那么它们之间到底有怎样的爱恨情仇呢?来一...

彤哥读源码
31分钟前
4
0
SpringCloud 学习(5) --- Zuul(一)基本概念、配置

[TOC] Spring Cloud eureka:注册中心 服务端:提供注册 客户端:进行注册 ribbon:负载均衡(集群) Hystrix:熔断器,执行备选方案 Feign:远程调用 Zuul:网关,统一入口。 1.1、一夫当关,...

庭前云落
34分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部