Docker入门

声明:原创文章,转载请注明出处。http://www.jianshu.com/u/e02df63eaa87

1、概念

  • Dockerfile:一个文本格式的配置文件,可以使用Dockerfile快速构建自定义镜像。
  • 镜像:用来构建这个环境的模板。通过同一个镜像,可以构造出很多独立但运行环境一样的容器。
  • 容器:一套程序运行的虚拟环境。

关系:

关系

2、常用命令

功能 命令
查看Docker信息 docker info
查看容器列表 docker ps
运行docker容器(centos) docker run -it centos bash
指定docker的名字并运行容器(centos) docker run --name centos -it centos bash
启动容器(centos) docker start centos
停止容器(centos) docker stop centos
附着到容器 docker attach centos
进入容器 docker exec -it centos /bin/bash
创建守护式容器(centos) docker run --name daemon_centos -d centos /bin/bash
查看容器内的进程 docker top centos
查看容器的配置 docker inspect centos
删除容器 docker rm id
容器互联 --link name:alias (name为正在运行的需要链接的容器,alias是别名)
搜索镜像 docker search centos
删除镜像 docker rmi centos
Dockerfile编译 docker build -t test_docker .
Dockerfile运行 docker run -it -d --name sshd -p 1022:22 test_docker /bin/bash

3、创建带有SSHD的docker容器

3.1 编写dockerfile

FROM centos:latest

MAINTAINER hawkingfoo<hawkingfoo@gmail.com>

# install sshd
#RUN yum clean all && yum makecache && yum update
RUN yum install -y net-tools openssh-server
RUN mkdir -p /var/run/sshd

# set root password
RUN echo 'root:123456' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# set history record
ENV HISTTIMEFORMAT "%F %T "

#Fix sshd service:Read from socket failed: Connection reset by peer?
RUN ssh-keygen -A

#Change timezone CST
RUN \cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# open port
EXPOSE 22

# auto run sshd service
CMD ["/usr/sbin/sshd", "-D"]

3.2 编译dockerfile并启动容器

docker build -t my_sshd .
docker run -d -it --name sshd -p 1022:22 my_sshd

3.3 进入容器

  • docker
docker exec -it sshd bash
  • ssh
ssh root@127.0.0.1 -p 1022