Docker命令 - 图1

1.查找镜像

  1. docker pull nginx # 下载最新版
  2. 镜像名称:版本名(标签)
  3. docker pull nginx:1.20.1
  4. # 查看本地镜像
  5. docker images
  6. # 删除镜像
  7. docker rmi 镜像名:版本号 / 镜像id

2.启动容器

启动nginx应用容器, 映射到88端口

  1. docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  2. docker run 设置项 镜像名 镜像启动运行的命令(一般不指定)
  3. # -d: 后台运行
  4. # --restart=always: 开机自启
  5. docker run --name=mynginx -d --restaret-always -p 88:80 nginx
  6. # 查看正在运行的容器
  7. docker ps
  8. # 查看所有
  9. docker ps -a
  10. # 删除停止的容器
  11. docker rm 容器id/名字
  12. docker rm -f mynginx #强制删除正在运行的容器
  13. # 停止容器
  14. docker stop 容器id/名字
  15. # 重启容器
  16. docker restart
  17. # 应用开机自启
  18. docker update 容器id/名字 --start-always

3.修改容器内容

修改默认的index.html页面

1、进入容器内部修改

  1. # 进入容器内部的系统,修改容器内容
  2. docker exec -it 容器id /bin/bash

2、挂在数据到外部修改

  1. docker run --name=mynginx \
  2. -d --restart=always \
  3. -p 88:80 -v /data/html:/usr/share/nginx/html:ro \
  4. nginx
  5. # 修改页面只需要到/data/html修改即可

3、挂在数据到外部修改
ro: 表示read only, 不能再容器内容修改,只能在容器外部修改
rw: 表示read write, 可读可写

  1. docker run --name some-nginx -p 88:80 -v /data/html:/usr/share/nginx/html:ro -d nginx

4、提交改变

  1. docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  2. docker commit -a "starbug" -m "首页变化" 3b9fa6f8ac53 mynginx:v1.0

5、镜像传输

  1. # 将镜像保存成压缩包
  2. docker save -o abc.tar mynginx:v1.0
  3. # 上传到目标机器,通过load命令加载这个镜像
  4. docker load -i bac.tar

6、推送到远程仓库

推送镜像到docker hub; 应用市场

  1. docker tag local-image:tagname new-repo:tagname
  2. docker push new-repo:tagname
  1. docker login # 登录docker hub
  2. docker logout # 推送完镜像后推出
  3. # 把旧镜像的名字,改成仓库要求的新版名字
  4. docker tag mynginx:v1.0 12138starbug/starbugnginx:v1.0
  5. # 推送
  6. docker push 12138starbug/starbugnginx:v1.0
  7. # 拉镜像
  8. docker pull 12138starbug/starbugnginx:v1.0
  9. # 启动镜像
  10. docker run --name=mynginx -d --restart=always -p 88:80 12138starbug/starbugnginx:v1.0

7、镜像详情

  1. # 查看容器日志
  2. docker logs 容器名/id
  3. # 进入容器内部
  4. docker exec -it 镜像名/id /bin/bash

8、其他命令

  1. # 复制容器内的文件到外部
  2. docker cp 镜像名/id:容器内的文件 本地文件路径
  3. docker cp some-nginx:/etc/nginx/nginx.conf /data/conf/nginx.conf
  4. # 外部文件复制到容器内部指定目录文件
  5. docker cp /data/conf/nginx.conf some-nginx:/etc/nginx/nginx.conf
  6. # 批量删除容器
  7. sudo docker rm -f $(sudo docker ps -aq)