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 1023