Docker(三)Docker镜像、容器相关操作

1.镜像


1.1 远程仓库

Docker远程仓库 访问https://hub.docker.com/,类似于GitHub,上边存放各种软件各个版本的镜像。访问官网,搜索框中搜索Python或者其他查看镜像,一般使用官方提供的镜像,如下图;
在这里插入图片描述

点击进入后,点击Tags,界面中出现不同版本,不同的拉取指令。
在这里插入图片描述

拉取镜像时,找到自己需要的版本,可以在搜索框中加入关键字进行搜索,然后拉取对应的镜像。


1.2 搜索官方仓库镜像

docker search 镜像名称
docker search 镜像名称:tag

docker search centos
docker search centos:centos7

—console—
在这里插入图片描述

列表说明

参数说明
NAME镜像名称
DESCRIPTION镜像说明
STARS点赞数量
OFFICIAL是否是官方的
AUTOMATED是否是自动构建的

1.3 镜像拉取

# 拉取指定tag的镜像,tag需要在docker远程仓库中查找到对应的
docker pull 镜像名称:镜像标签
# 不加tag时,拉取为镜像最新版本
docker pull 镜像名称

# 例子
docker pull python:3.6	# 拉取Python且tag为3.6的
docker pull python	# 拉取最新版本的Python

拉取第三方镜像

docker pull 192.168.0.185:5000/mysql

1.4 查看所有镜像

# 查看本地拉取的所有镜像
docker images

第一列为镜像名称,第二列为镜像的版本,第三列为镜像id,第四列是镜像创建时间,第五列是镜像的大小。
在这里插入图片描述

1.5 查看镜像信息

docker inspect 镜像名称/id:镜像标签

docker inspect python
docker inspect python:latest
docker inspect a5d79:latest

# 上方三条指令输出结果都相同,使用其中之一即可。

1.6 删除镜像

# 删除镜像 需要容器中不存在基于该镜像生成的容器
docker rmi 镜像名称/id:镜像标签

# 强制删除
docker rmi -f 镜像名称/id:镜像标签

1.7 运行官方镜像

输入命令docker run hello-world,等待片刻后,console中输出下面内容,此时代表docker安装完成且已正常启动。

解释:
当输入docker run hello-world时,docker做了以下几件事

  1. 检查本地是否有hello-world镜像
  2. 发现本地没有hello-world镜像,去docker远程仓库拉取hello-world镜像
  3. 拉取完成后,运行hello-world镜像

在这里插入图片描述

1.8 镜像备份

# 通过以下命令将镜像保存为tar文件
docker save -o 压缩包名称 镜像名称/id:tag
docker save -o mysql.tar mysql:5.7

在这里插入图片描述

1.9 恢复镜像

docker load -i 压缩包文件
docker load -i mysql.tar

—console—
在这里插入图片描述

2.容器操作

2.1 容器创建启动两步走(不常用)

# 创建出centos容器并重命名为centos
docker create --name=centos centos:centos7
# 启动这个容器
docker start centos

—console—
在这里插入图片描述

2.2 最简单运行一个容器

# docker run 镜像名称/id:tag 不写tag默认使用最新
docker run nginx

2.3 快速创建和启动一个容器

容器内的第一个进程必须一直处于运行的状态,否则这个容器,就会处于退出状态!

docker run python:3.6 /usr/bin/sleep 20;

2.4 运行一个完整的容器命令以及参数解释

docker run 参数1 参数2 镜像名称:tag

如
docker run -di --name=centos -v /home/:/home centos:centos7
# 通过centos:centos7镜像创建出容器,并在后台运行、名字为centos、将宿主机的目录映射home目录到容器内部的/home路径下

参数解释

参数详解
-i表示运行容器
-t表示容器启动后会进入其命令行,加入这个参数后,容器创建就能登录进去,即分配一个伪终端
-v表示目录映射关系(前者是宿主机目录,后者容器目录,是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登陆容器,如果只加-i -t两个参数,创建后就会自动进去容器)
p表示端口映射,前者是宿主机端口,后者是容器内的映射端口,可以使用多个-p做多个端口映射。
–name为创建的容器命名,如果不写,会自动分配一个名称
-e指定内部环境变量,向容器的环境变量中加了一个key value,mysql在启动的时候,设置了用户的root密码

PS:当本地没有对应镜像的时候,会去官网拉取指定版本。不加后缀会拉最新的。

demo

  • docker run -it --name=myredis redis 运行容器并进入到容器中,分配一个伪终端做交互
  • docker run -it --name=mycentos1 centos:centos7 运行centos容器,并进入到伪终端
  • docker run -di --name=mycentos2 centos:centos7 运行一个centos7容器,并在后台运行

2.5 查看正在运行的容器和所有容器

# 查看正在运行的容器
docker ps

# 查看所有容器
docker ps -a

2.6 容器的启动、停止及重启

# 启动
docker start 容器名称/id
# 停止
docker stop 容器名称/id
# 重启
docker restart 容器名称/id

2.7 进入容器伪方法

# 参数:-it 可交互终端
docker exec -it 容器名称:id 指令
docker exec -it centos /bin/bash

# 通过exit退出容器伪终端
exit

在这里插入图片描述

2.8 启动时进行端口映射

# 通过参数-p 进行端口映射
docker run -p 宿主机端口:容器端口 镜像名称/id
docker run -di --name=redis -p 5555:6379 redis
# 查看redis是否运行
docker ps

# 通过远程连接映射端口5555连接redis
redis-cli -h 10.0.0.100 -p 5555

—console—
在这里插入图片描述

2.9 文件拷贝

# 拷贝文件时,容器不在运行也能进行拷贝

# 1 从宿主机拷贝到容器内部
docker cp 需要拷贝的文件或目录 容器名称/ID:容器目录 
docker cp /home/demo.txt redis:/home

# 2 从容器内部拷贝到宿主机
# 在宿主机中运行而不是在容器中运行
docker cp 容器名称/ID:容器目录 需要拷贝的文件或目录
docker cp redis:/home /home/test/

2.10 目录挂载

# 前提   需要在创建容器的时候进行此操作,已经运行起来的容器不支持此操作

# 将本地lqz目录和容器中的home路径进行挂载(可以理解为同步的意思)
docker run -di -v /home/test:/home --name=mycentos99 centos:centos7

2.11 查看容器IP地址

# 方式一 docker inspect 容器名称/id
# 然后在console中查找ip


# 方式二
# 进入到容器中输入ifconfig指令查看ip 如果没有指令需要安装软件才能查看
docker exec -it 容器名称/id ip指令

# 方式三
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称/id
docker inspect --format='{{.NetworkSettings.IPAddress}}' b1d49b184e38

2.12 删除容器

# 再运行的不能删除
docker rm 容器名称/id

# 强行删除
docker rm -f 容器名称/id

# 删除所有容器(谨慎操作)
docker rm `docker ps -a -q`

2.13 容器保存为镜像

docker commit 容器名字 镜像名字
docker commit python3 mydjango
docker commit 0f33e48ffe99 mydjango

# 查看镜像是否保存成功
docker images
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呀儿呦丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值