docker note

非原创,只做学习记录来使用

---------------------------------------------------------

Docker使用的是Linux容器,这是运行在与它的宿主机器同样的操作系统上。这准许它可以和宿主机器共享许多系统资源。它也会使用AuFS作为文件系统,也为你管理网络。

AuFS是一个层状的文件系统,因此你可以有一个只读部分和一个只写部分,然后将二者组合起来。你可以使系统的共同的部分用作只读,那块是被所有容器共享,并且给每个容器自己的可写区域

这几天一直搞KVM,但发现目前的应用实在是太简单了,多启动几个kvm有点浪费了。现在N多人都在讨论Docker,所以就查了下看看,安装在Centos6.5上,其它的也没多试。
   使用Centos安装它还是挺方便的,配置好epel源后直接 yum install docker-io即可安装。service docker start就启动了,还是比较简单的。依赖安装包有libcgroup,lxc,lxc-libs。cgroup lxc这里不介绍了。
    因为Centos比较熟悉,所以先下载它。获取最新的docker image 使用 docker pull centos即可。使用docker run -i -t centos /bin/bash就可以运行了。当初以为运行后直接配置个IP、启动SSH就行了,可搞了半天都不对,N多错误。后来找了下,Docker其实不是这个样子玩滴。
    所以综合了下,还是自己根据Dockerfile来创建一个新的镜像吧,首先就是要编译Dockerfile,它的内容如下
# cat Dockerfile
# liuxin/centos:ssh
#
# VERSION               0.0.1
 
FROM        centos
MAINTAINER  liuxin "[email protected]"
 
RUN         yum install -y openssh openssh-server openssh-clients
RUN         mkdir /var/run/sshd
RUN         ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN         ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN         /bin/echo ‘root:aaaaaa‘ |chpasswd
RUN         useradd liu
RUN         /bin/echo ‘liu:aaaaaa‘ |chpasswd
RUN         /bin/sed -i ‘s/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g‘ /etc/pam.d/sshd
RUN         /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local
EXPOSE      22
CMD         /usr/sbin/sshd -D
    然后在文件所在目录下执行 docker build -rm -t liuxin/centos:ssh . (这里有个点,别忽略了),等一会就可以看到过程了,这里就不复制了。
    这里的两条ssh-keygen要加上,如果不加ssh启动就会报错。因为网上大多都是Ubuntu的,当初我照着U的系统来做,根本没成功。理论上来说/usr/sbin/sshd -D就会创建了主机的rsakey,但U系统可以C系统就没成。
    当执行完后,使用docker images就能看到自己创建,如下

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
liuxin/centos       ssh                 2854690ce065        About an hour ago   306.7 MB
ubuntu              latest              7dc370b825b0        2 hours ago         275.3 MB
centos              centos7             b157b77b1a65        4 weeks ago         243.7 MB
centos              latest              b157b77b1a65        4 weeks ago         243.7 MB

然后执行docker run -d -p 22 liuxin/centos:ssh、docker ps -a就可以看到

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                   NAMES
72a06bd5bf41        liuxin/centos:ssh   /bin/sh -c ‘/usr/sbi   About an hour ago   Up About an hour    0.0.0.0:49153->22/tcp   sleepy_euclid

这里的49153就是宿主机的端口,22就是Docker的ssh端口
    然后运行ssh 127.0.0.1(或者其它IP) -p 49153 就可以ssh连接到Docker启动的这个了。

这里没介绍关于Docker的一些常用的命令,可以看下http://blog.chinaunix.net/uid-10915175-id-4443127.html

参考
https://docs.docker.com/installation/centos/
https://docs.docker.com/userguide/dockerimages/
https://docs.docker.com/examples/running_ssh_service/

时间: 2024-10-10 20:37:07

docker note的相关文章

docker note from UC blog

-------------------------------------------------------------------------- original url http://tech.uc.cn/?p=2726 最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境,感觉生活在PAAS时代的程序员真是幸福,本文会简要介绍下Docker是什么,如何利用Docker来搭建自己的开发环境(本文主要是面向Mac OS X),以及期间所遇到的一些坑和解决方案.

Docker教程:Docker镜像导出及迁移

http://blog.csdn.net/pipisorry/article/details/51330126 Docker目录分析 安装docker时,默认的安装位置是/var/lib/docker. $sudo ls /var/lib/docker/ aufs  containers  graph  init  linkgraph.db  repositories-aufstmp  trust  volumes repositories-aufs:记录了镜像名称以及对应的Id的json文件

Docker change directory

https://forums.docker.com/t/how-do-i-change-the-docker-image-installation-directory/1169/2 How do I change the Docker image installation directory? Open Source Projects DockerEngine nhazlettNick HazlettDocker Staff Apr '15 2 You can change Docker's s

Using Supervisor with Docker

Using Supervisor with Docker Note: - If you don't like sudo then see Giving non-root access Traditionally a Docker container runs a single process when it is launched, for example an Apache daemon or a SSH server daemon. Often though you want to run

Docker installation in sles SP2

Please refer to official site for installation  details :  https://docs.docker.com/install/linux/docker-ee/suse/ Example installation for SUSE Linux SP2 12.2 + Docker  17.06.2 1. Prerequisites  1.1. Get Docker EE URL by Registration , go to:  https:/

20170527

1.Deployment Portainer is built to run on Docker and is really simple to deploy. Portainer deployment scenarios can be executed on any platform unless specified. Quick start Deploying Portainer is as simple as: $ docker run -d -p 9000:9000 portainer/

Installing the AWS SAM CLI on macOS

Installing the AWS SAM CLI on macOS https://docs.aws.amazon.com/zh_cn/serverless-application-model/latest/developerguide/serverless-sam-cli-install-mac.html The following steps help you to install and configure the required prerequisites for using th

《Docker Deep Dive》Note - Docker 引擎

<Docker Deep Dive>Note Docker 引擎 1. 概览 graph TB A(Docker client) --- B(daemon) subgraph Docker 引擎 B --- C(containerd) C --- D(runc) end Docker 引擎是用来运行和管理容器的核心软件. 主要构成:Docker Client.Docker daemon(Docker守护进程).containerd.runc. 2. 详解 graph TB A(Docker c

《Docker Deep Dive》Note - 纵观 Docker

<Docker Deep Dive>Note 由于GFW的隔离,国内拉取镜像会报TLS handshake timeout的错误:需要配置 registry-mirrors 为国内源解决这个问题. 可以配置为阿里的加速源:https://cr.console.aliyun.com/undefined/instances/mirrors,阿里的加速器可以提升获取Docker官方镜像的速度. 登录开发者账号后,将自己的加速器地址复制到 Docker Settings > Daemon >