Docker超详细基础使用(带图)

news/2025/2/10 8:34:31/

目录

安装ubuntu

基本使用命令

docker run 容器名   延伸命令

 启动ubuntu

 查看所有正在运行的容器

指定容器别名启动

doker ps 延伸命令

 退出容器

重新进入正在运行的容器

启动容器 

 删除已停止的容器

强制删除容器 

 查看容器日志

 查看容器内部运行的进程

​编辑 查看容器内部细节

 导出导入容器 

 导出​编辑

 导入​编辑

上传容器镜像到仓库

 commit容器

 安装vim

 提交容器

 上传阿里云容器镜像仓库

 拉取

 拉取阿里云容器镜像

 上传私有仓库

安装ifconfig的ubuntu并推送到私服

 推送镜像到私服

 拉取私服镜像

 容器卷


安装ubuntu

本篇文章以ubuntu系统镜像为测试

基本使用命令

docker run 容器名   延伸命令

 启动ubuntu

平常如果直接启动ubuntu的话是docker run ubuntu,但是ubuntu是一种类似于centos的系统,所以需要暴露出终端让我们进一步的输入命令,所以此时就需要我们以交互式地启动ubuntu

docker run -it ubuntu bash
或者

docker run -it ubuntu /bin/bash

 

 

 查看所有正在运行的容器

docker ps

 注意此时我们处在ubuntu的系统中,所以需要另外开一个窗口然后输入docker命令进行查看

 此时我们启动ubuntu时没有指定容器名字,所以docker会随机飞机分配一个名字给容器

指定容器别名启动

docker run -it --name=名字 ubuntu /bin/bash

 再开一个连接窗口进行查看

 可以看到第一个容器的名字就已经是我们刚才指定的名字了

如果有哪些命令忘记还可以查看docker命令帮助

docker run --help

 只不过命令说明都是英文,对英文不太好的小伙伴(指自己)不太友好o(╥﹏╥)o

doker ps 延伸命令

 

 

 

 

 退出容器

 可以看到退出后再使用docker ps命令后随机名字的ubuntu的容器已经停止

 

 在自定义名字容器的连接窗口里输入快捷键退出后再使用docker ps发现自定义的ubuntu容器并没有停止

重新进入正在运行的容器

docker exec -it 容器id /bin/bash

或者 

docker exec -it 容器id bash

 

启动容器 

docker start 容器id

 

 删除已停止的容器

docker rm 容器id

 

 注意该命令是删除 已停止的容器

所以如果要删除该容器的话需要先将该容器停止

docker stop 容器id

强制删除容器 

如果想要删除正在运行的容器的话需要再命令行中加 -f命令

docker rm -f 容器id   

 

 拓展 不建议使用 可能会误删容器

 后台启动容器 ,这里以redis容器作为演示

首先拉取redis容器

 

 

 查看容器日志

docker logs 容器id

 

 查看容器内部运行的进程

docker top 容器id

 查看容器内部细节

docker inspect 容器id

 

从容器内复制文件到主机

 导出导入容器 

 

 导出

 导入

 拓展知识

 

上传容器镜像到仓库

 commit容器

我们在拉取容器后,有些容器可能不包含我们需要的一些功能,这时我们可以对该容器下载一些我们需要的功能后将容器进行commit

首先先更新我们的容器包管理器

apt-get update

 安装vim

apt-get -y install vim

 测试vim命令是否可以使用

 输入 vim ab.txt进入文本编辑

 编辑文本

退出 

保存并退出:在 Vim 编辑器中,输入 :wq 命令可以保存当前文件并退出,具体操作步骤是:

a.按下 Esc 键进入普通模式。

b.输入 :wq 并按下回车键即可保存并退出。

 提交容器

 docker commit -m="描述" -a="作者" 容器di 目标镜像名:标签名

 

 上传阿里云容器镜像仓库

将刚刚提交的容器镜像上传到阿里云镜像仓库里

 登录阿里云进入到控制台中

 

 为了方便演示这里创建一个公开的仓库

 

 

 

 进入仓库获取执行脚本

 依次执行推送脚本即可

 

 

 拉取

 再将刚才推送成功的镜像拉取下来

为了避免混淆,先将本地里的镜像删掉

 

 拉取阿里云容器镜像

测试使用 

 

 上传私有仓库

 拉取一个私有仓库

 docker pull registry

 执行配置私服命令

默认情况下 仓库被创建在容器的/var/lib/registry目录下 建议自行用容器卷映射 方便于宿主机联调

 docker run -d -p 5000:5000 -v /wutian/myregistry/:/tmp/registry --privileged=true registry

安装ifconfig的ubuntu并推送到私服

 

 执行下面两条命令

apt-get update

apt-get install net-tools

 

 执行后再次执行ifconfig查看效果

 跳出docker容器再commit安装ifconfig后的容器

 查看提交的镜像

查看私服仓库中的镜像列表

 ifconfig | grep 'inet '

curl -XGET http://域名ip地址:5000/v2/_catalog

 查看后发现当前私服中没有任何镜像

修改刚才提交的镜像为私服要求的镜像格式

公式

docker tag 镜像名:标签 Host:Port/Repository:标签

docker默认是不允许http方式推送镜像的,需要修改配置使docker允许http方式推送镜像

查看配置文件

cat /etc/docker/daemon.json

 修改后  注意ip地址改成自己的

{
  "registry-mirrors": ["https://panyr5rh.mirror.aliyuncs.com"],
  "insecure-registries":["172.17.4.142:5000"]
}

有的可能修改后没有起作用,可以重启docker

systemctl restart docker

 再启动私服仓库

 

 推送镜像到私服

 docker push 172.17.4.142:5000/fig_ub:1.2

再次查看私服仓库

 拉取私服镜像

为了避免混淆先把本地的删除掉

拉取私服镜像

 拉取成功

 测试

 容器卷

将运用与运行的环境打包镜像 run后形成容器实例运行 可以使得数据持久化

通俗的说就是把容器内的的文件数据和宿主机进行同步持久化

 演示:

 docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data --name=u1 ubuntu

 注意配置中的文件目录如果不存在docker会自动创建

 

在宿主机中修改这个文件,然后回到容器内观察文件内容有无同步

 

 

 

 回到容器中查看

 查看容器卷是否挂载成功

用之前的查看容器内部详情命令

 往下翻看详情


http://www.ppmy.cn/news/280669.html

相关文章

[游戏代码] L4D求生之路部分代码用法

获取开火的武器代码 public Action Event_WeaponFire(Event event, const char[] name, bool dontBroadcast) {char sWeapon[32];GetEdictClassname(GetPlayerWeaponSlot(client, 0), sWeapon, 32);PrintToChatAll("武器代码:%s ,sWeapon); }

[游戏代码]求生之路:ent_fire用法

ent_fire <classname or targetname> <input name> <optional parameter> <optional delay> <classname or targetname> !self //只对自己工作 !picker //通过瞄准选择的玩家 player //该服务器上的所有玩家地图事件调用方法: 例子解释(地图编辑…

[游戏代码]求生之路插件:人物获得武器

#include <sourcemod> #include <sdktools> #pragma semicolon 1public Plugin:myinfo {name "[紫冰] 武器给予",author "紫冰",description "输入指令获得武器",version "1.0",url "https://blog.csdn.net/Z…

求生之路2升级补丁及完整版下载

各低版本升级包&#xff1a;&#xff08;按自己版本情况选择下载&#xff09; 资源免责申明&#xff1a;本人提供的所有资源&#xff0c;均为互联网收集转载&#xff01;请在下载24小时内删除&#xff01;为尊重版权&#xff0c;谢谢&#xff01; 各低版本升级包&#xff1a;&a…

求生之路2linux服务器,《求生之路2》正式开放Linux版

开发商Valve已经完成了在Linux系统上的完成了对Steampipe系统的支持和EMS系统(传说中很牛叉的进阶突变系统&#xff0c;存在于突变模式中)的研发与测试。 所谓的Steampipe系统&#xff0c;就是能给予开发者在内容存储服务器上的编码分支和管理测试访问权的灵活性。以及代码也变…

[教程] 求生之路联机方法

生之路联机才是该游戏的乐趣所在&#xff0c;联机请检查双方 游戏版本 是否一致&#xff0c;不同版本 无法联机 。 求生之路ip直连方法&#xff1a; 1.使用MAP命令建立主机&#xff0c;单人战役模式建立的游戏 无法联机 。 PS&#xff1a;路由器用户建主需开启端口映射 按…

Left 4 Dead 2(求生之路2) 游戏打不开 游戏闪退 的一种可能性以及解决方法

放假了想和朋友们一起打求生2,于是在搞游侠准备联机。可问题出现了,其他人的游侠能够正常启动游戏,我的却启动不了。 显示游戏已经正常启动,在资源管理器里也看到有了进程left4dead2.exe,但过了一会进程就没了。完全没有错误信息,令人头大.jpg。 在网上查找如何解决游戏…

求生之路指令

项-> 键盘/鼠标- >允许开启控制台&#xff09; 然后游戏中按 &#xff5e; 开启控制台&#xff0c;输入 Sv_Cheats 1 回车确认开启秘籍模式。 最后游戏中按 &#xff5e; 开启控制台&#xff0c;输入以下秘籍回车确认可得到对应效果 god 1 无敌 noclip 穿墙 sv_in…