Docker基础操作(笔记)

本文详细介绍了Docker的基础操作,包括下载与启动镜像、查看容器信息、新建及管理容器,如后台运行、重启与停止容器,以及如何通过attach、exec和nsenter进入容器。还讨论了容器的导出与导入,配置私有仓库,以及解决push到私有仓库时的HTTP响应问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker 镜像下载并启动:

查看镜像信息:

查询官网mysql 镜像

容器基本操作
新建容器

查看所有容器

新建容器并启动容器

docker run命令启动时,dock会在后台进行:
1 、检查本地是否存在指定的镜像,不存在就在共有仓库下载。
2 、利用镜像创建并启动一个容器
3 、分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。
4 、从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去。
5 、从地址池中配置一个IP 地址给容器
6 、执行用户指定的应用程序。
7 、执行完毕后容器被终止。

启动一个bash 终端,并允许用户交互


-t
让docker分配一个伪终端,并绑定到容器的标准输出上
-i
让容器的标准输入保持打开
在交互模式下,可以在创建的终端下输入命令,按Ctrl+D 或者exit 可以退出容器

容器中,只运行了bash 应用,没有运行其他不需要的程序,由于当前只运行了bash 程序,当exit 后,该容器就会自动处于停止状态

让容器后台运行,守护态(Daemonized )。需要添加  -d   参数

命令执行完后会返回一个容器的ID
可以通过 sudo docker ps 命令查看容器信息

通过sudo docker logs +ID 查看打印信息

停止容器:sudo docker stop +ID 或者Sudo docker kill +ID docker kill 命令会直接发送SIGKILL 信号来强制终止容器)

通过docker ps -a -q 来查看终止状态的容器的信息

重启容器: sudo docker restart +ID

进入容器:docker attach 命令和docker exec命令或者nsenter工具
1 attach


Docker attach 命令后面可以+ID(56c)或者name(musing_visvesvaraya)
在使用attach 命令时,当多个窗口同时attach 到同一个容器的时候,所有窗口都会同步显示,当一个窗口因为命令阻塞时,其他窗口也会 无法执行操作。
2 exec 命令
    exec 命令可以直接在容器内运行命令,例如:在进入(56c )容器时,并启动一个bash
 
3 )自定义命令
下载 .bashrc_docker,并将内容放到 .bashrc 中。
$ echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc
 
这个文件中定义了很多方便使用 Docker 的命令,例如 docker-pid 可以获取某个容器的 PID;而 docker-enter 可以进入容器或直接在容器内执行命令。
$ echo $(docker-pid <container>)
$ docker-enter <container> ls

4 n senter工具


删除容器:
Sudo docker rm +ID

删除运行中的容器需要添加 -f 参数

未添加 -f 参数会报错

删除成功

导入或导出容器
导出容器
导出容器是指导出一个已经创建的容器到一个文件,不管此容器是否处于运行状态,可以使用docker export命令,该命令格式为docker export CONTAINER
查看所有的容器:
$sudo docker ps -a

$sudo docker ps 运行中的容器
分别导出3f1c1e48d58a容器和851320e3a490容器到test_for_run.tar和test_for_stop.tar文件中:

可以将这些Tar文件传输到其他机器上通过导入命令来实现容器的迁移
导入容器
导出的文件又可以使用docker import命令导入,成为镜像

配置私有仓库
1、安装运行docker-registry,同时将镜像库挂在到/root/demo目录下
$ docker run -d -p 5000:5000 --restart=always --name test -v /root/demo:/var/lib/registry registry:2

2、测试
10.128.222.245(本地仓库)
10.128.222.244(测试主机)
a、 从官方docker仓库pull一个busybox镜像
$sudo docker pull busybox
b、 修改镜像的tag
$ docker tag ubuntu 10.128.222.245:5000/busybox:latest
c、 将打了Tag的镜像push到私有仓库(10.128.222.245)

d、此时会报错

Error response from daemon: Get https://10.128.222.245:5000/v1/_ping: http: server gave HTTP response to HTTPS client

只需要两步即可:
1,Create or modify /etc/docker/daemon.json

[root@localhost ~]# echo '{ "insecure-registries": ["10.128.222.245:5000"] }' > /etc/docker/daemon.json
[root@localhost ~]# cat /etc/docker/daemon.json
{ "insecure-registries":["10.128.222.245:5000"] }

2,重启docker服务
root@localhost ~]# systemctl restart docker
e、查看私有仓库内的镜像
curl 10.128.222.245:5000/v2/_catalog


查看私有仓库内镜像的版本号:
查看私有仓库中的镜像
curl registryIP:5000/v2/Imagesname/tags/list

f、 从私有仓库获取镜像、、
docker pull registryIP:5000/镜像名:版本

注:在启动私有仓库时必须指定挂载点,否则当服务终止时,仓库中的镜像会随着容器的关闭而被清理掉( 17.05.0-ce版本:仓库的默认位置为:/var/lib/registry)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值