# docker小记

# 工具准备

# 开始使用Docker-Playground

  • 点击 ADD NEW INSTANCE

# 常用命令

# pull 拉取镜像

  • 拉去镜像
docker pull nginx
1
  • 也可指定版本,如果不指定版本,默认pull最新版
docker pull nginx:latest
1

# images 查看镜像

  • 查看镜像
docker images
1

# run 运行镜像

  • -d指定docker镜像后台运行
  • -p指定端口映射 -p 80:80
  • --name指定运行后的容器的名字
  • -v 指定外部和容器内部的文件映射 pwd:/xx/xxx
  • --link 将一个容器的地址写入另一个容器的hosts文件中,就可以通过名称访问了,使用方式 --link 其他容器的名字名:本容器写入hosts文件和ip对应的名字 ,eg: --link nginx1:nginx1
  • docker run + 一些列参数 + 需要运行的镜像名
docker run -d -p 80:80 nginx
1
  • 同一个镜像可以启动很多个,本地映射端口不重复即可

# ps 查看正在运行的容器

docker ps
1
  • 输出如下
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
d97bf784fa0d        nginx               "/docker-entrypoint.…"   57 seconds ago      Up 56 seconds       0.0.0.0:80->80/tcp   beautiful_proskuriakova
1
2

# exec 修改容器内容

  • docker exec + 参数 + 通过ps查看的容器ID
docker exec -it d97bf784fa0d bash
1

# commit 创建新容器

  • docker commit <已存在容器的containerID> <镜像名>
docker commit d9 test
1
  • 此时我们在执行 docker images 就会发现有两个容器一个是之前的 nginx 还有一个我们本地提交的 test

# rm 删除镜像

  • -f 强制删除
  • docker rm -f + 容器ID
docker rm -f d97bf784fa0d
1

# build 生成容器

  • 首先要新建一个Dockerfile文件
vim Dockerfile
1
  • 在里面写入
FROM nginx
ADD ./ /usr/share/nginx/html
1
2
  • 退出并保存
  • 在本地新建一个index.html
vim index.html
1
  • 随便写入些内容
  • 此时我们就可以使用 docker build命令来生成容器
  • docker build -t <指定容器名> <指定要执行那个目录下的Dockerfile文件>
docker build -t test2 .
1

# tar 归档docker容器

  • docker save <已有的容器镜像名> > <指定文件名>
docker save nginx > nginx.tar
1

# load 启用已经归档的容器镜像

  • docker load < <被归档的容器镜像>
docker load < nginx.tar
1

# docker-compose

  • 后面补充
Last Updated: 1/23/2022, 10:16:22 AM