docker的使用
# Run a command in a new container
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# exmple
# -t: 在新容器内指定一个伪终端或终端。
# -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
# -d: 后台模式运行命令
docker run -i -t ubuntu:15.10 /bin/echo "Hello world"
# 查看所有docker容器
docker ps -a
CONTAINER ID IMAGE COMMAND ...
5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
输出详情介绍:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:
created(已创建)
restarting(重启中)
running 或 Up(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡)
# 查看容器内标准日志输出
docker logs {containerid}
# 启动/停止/重启容器
docker start {containerid}
docker stop {containerid}
docker start {containerid}
# 进入容器
# 如果从这个容器退出,会导致容器的停止。
docker attach
# 推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
docker exec
# 导出容器快照
docker export 1e560fca3906 > ubuntu.tar
# 倒入容器快照
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
# 删除容器
docker rm -f 381a5ec67d71
# 运行容器及程序
# -d 后台运行
# -P 将容器内部使用端口映射到主机上
# -p 指定绑定主机端口
docker run -d -P -p 5000:5000 training/webapp python app.py
# 查看容器内部运行的进程
docker top 7ae124508e38
# 查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。
docker inspect 7ae124508e38
docker 镜像
# 查看主机上的镜像
docker images
# 拉取镜像
docker pull ubuntu
# 推送镜像
docker push username/ubuntu:18.04
# 从 Docker Hub 网站来搜索镜像
docker search httpd
# 更新镜像
# -m 提交的描述信息
# -a 指定镜像作者
# e218edb10161 容器id
# runoob/ubuntu:v2 指定要创建的目标镜像名
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
# 创建镜像
# -t 指定要创建的目标镜像名
# . Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
docker build -t runoob/centos:6.7 .
# 为镜像添加一个新的标签。
docker tag 860c279d2fec runoob/centos:dev
Dockerfile
# 每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
# 第一条FROM,指定使用哪个镜像源
# RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。
# 然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
FROM centos:6.7
MAINTAINER Fisher "fisher@sudops.com"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D