Docker镜像与容器操作

1. 镜像

  • 查找镜像
docker search nginx
  • 拉取镜像
docker pull nginx

也可以指定版本
docker pull nginx:1.18.0
  • 查看镜像
docker images
  • 镜像详情
docker inspect nginx
  • 删除镜像
docker rmi nginx
  • 镜像标签
docker tag src_image[:tag] tar_image[:tag]
  • 创建镜像

通常有三种方法可以创建容器镜像,如:基于已有的镜像容器创建;基于本地镜像导入;基于Dockerfile创建(建议使用)

commit是基于一个已存在的容器进行创建镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

选项说明:
    -a, --author string 作者信息,如:"John Hannibal Smith <hannibal@a-team.com>"
    -m, --message string    提交信息
  • 导出镜像
docker save -o nginx.tar nginx

选项说明:
    -o, --output string  指定导出文件
  • 导入镜像
docker load -i nginx.tar

选项说明:
    -i, --input string  指定导入的归档文件
  • 上传镜像
首先要给镜像打一个标签
docker tag nginx:1.18.0 local.mirror.com/nginx:1.18.0

然后再将镜像上传到仓库
docker push local.mirror.com/nginx:1.18.0

2. 容器

  • 创建容器
docker create -it --name myngx nginx:1.18
  • 启动容器
docker start myngx
  • 停止容器
docker stop myngx
  • 重启容器
docker restart myngx
  • 运行容器

docker run等同于docker createdocker start

docker run -d -p80:80 --name myngx nginx:1.18

常用选项:
    -d  守护进程
    -i  以交互模式运行容器,通常与 -t 同时使用
    -t  为容器重新分配一个伪输入终端,通常与-i同时使用
    -P  随机端口映射,容器内部端口随机映射到主机的端口
    -p  指定端口映射,格式为:主机(宿主)端口:容器端口
    --name="myngx"  为容器指定一个名称
    --dns 8.8.8.8   指定容器使用的DNS服务器,默认和宿主一致
    --dns-search example.com    指定容器DNS搜索域名,默认和宿主一致
    -h "hostname": 指定容器的hostname
    -e MYSQL_ROOT_PASSWORD="toor3412"   设置环境变量
    --env-file=[]   从指定文件读入环境变量
    --cpuset="0-2" or --cpuset="0,1,2"  绑定容器到指定CPU运行
    -m  设置容器使用内存最大值
    --net="bridge"  指定容器的网络连接类型,支持bridge、host、none、container四种类型
    --link=[]   添加链接到另一个容器
    --expose=[] 开放一个端口或一组端口
    --volume , -v   绑定一个卷
  • 进入容器
docker exec -it myngx bash
  • 删除容器
docker rm myngx -f  # -f 表示强制删除一个正在运行的容器
  • 查看容器
docker ps -a  # -a 表示查看所有容器,包括退出的容器
  • 查看容器状态
# docker stats
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
15081e87b563        gifted_dhawan       0.00%               1.391MiB / 1.936GiB   0.07%               648B / 0B           0B / 0B             2
dc3ba5ed2ab8        myngx               0.00%               1.383MiB / 1.936GiB   0.07%               1.09kB / 0B         0B / 0B             2
  • 查看进程
# docker top myngx
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                120764              120742              0                   12:49               pts/0               00:00:00            nginx: master process nginx -g daemon off;
101                 120814              120764              0                   12:49               pts/0               00:00:00            nginx: worker process
  • 查看日志
docker logs myngx -f  # -f 表示实时刷新,类似tail -f

3. 仓库

官方镜像仓库地址:https://hub.docker.com

  • 登录

输入账号/密码登录成功之后,一般会在~/.docker/config.json保存登录认证信息

docker login
  • 登出
docker logout
  • 私有仓库

实现私有仓库的方式有很多,通常有:registry、harbor、nexus等,本文以registry为例。

# 运行registry仓库
docker run -d -p 5000:5000 --restart=always --name registry registry

# 打标签
docker tag nginx:1.18 127.0.0.1:5000/nginx:1.18

# 上传
docker push 127.0.0.1:5000/nginx:1.18

# API示例
# curl 127.0.0.1:5000/v2/_catalog
{"repositories":["nginx"]}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值