草庐IT

【云原生 | 08】Docker之单容器管理

小鹏linux 2023-05-05 原文

🍁博主简介
        🏅云计算领域优质创作者
        🏅2022年CSDN新星计划python赛道第一名

        🏅2022年CSDN原力计划优质作者
        🏅阿里云ACE认证高级工程师
        🏅阿里云开发者社区专家博主

💊交流社区CSDN云计算交流社区欢迎您的加入!

目录

1.基础命令

2. 单一容器管理

3. run 基础命令

 👑👑👑结束语👑👑👑


Docker 指令的基本用法:

docker + 命令关键字(COMMAND) + 一系列的参数

docker run --name MyWordPress --link db:mysql -p 8080:80 -d wordpress

#docker run 运行

#--name MyWordPress 指定容器名称,不指定则随机生成一个容器名。

#--link db:mysql 链接的含义。当前MyWordPress容器想运行就必须要依赖另一个db容器(db容器调用别名mysql)db容器和mysql别名会写入到当前容器的/etc/hosts文件中

#-p 8080:80 8080为访问物理机端口地址,80为docker容器内部的端口

#-d wordpress 放到后台运行。容器如需运行的最低标准:必须拥有前台进程

1.基础命令

命令1:
docker info                        #守护进程的系统资源设置
举例如下:

命令2:
docker search                        #镜像的查询
举例如下:
[root@localhost ~]# docker search nginx		#只能查看镜像名,看不到版本号。
命令3:
docker pull                         #镜像的下载

举例如下:

浏览器搜素https://c.163yun.com/hub#/home网易官方镜像,登录,点击镜像仓库,点击镜像中心,搜素centos,点击public/centos,点击版本,复制下载地址。hub.c.163.com/public/centos:6.7-tools

[root@localhost ~]# docker pull hub.c.163.com/public/centos:7.2-tools	#将版本号修改为需要的版本号用docker pull命令下载即可
命令4:
docker images                #Docker镜像的查询
举例如下:
[root@localhost ~]# docker images		#可以查看本地仓库下所有的镜像

[root@localhost ~]# docker images --no-trunc		#可以显示全部ID

命令5:
docker rmi                #Docker镜像的删除

当一个镜像在某个容器中运行时候无法删除,只能强制删除。

-f 选项可以强制删除镜像

命令6:
docker ps                #容器的查询
举例如下:
docker ps		    #容器的查询(当前正在工作的)
docker ps -a 	    #查询所有的容器
docker ps -a -q	    #简要化查询所有的容器(只输出ID号)

命令7:
docker run                #容器的创建启动
举例如下:

启动方式一:

[root@localhost ~]# docker run -d hello-world:latest
                                      #镜像名:版本号

启动方式二:

[root@localhost ~]# docker run -d feb5
                                  #镜像ID号前四位
命令8:
docker start                     #容器启动
docker stop                     #容器停止
命令9:
docker rm			#容器的删除
                    #-f 强制删除
举例如下:
[root@localhost ~]# docker rm -f $(docker ps -a -q)		#强制删除所有容器
命令10:镜像导入导出

docker save -o 镜像名.tar 镜像名:版本号            ​  # 以打包的方式导出镜像到当前目录下

docker load -i 镜像名.tar                                          # 导入镜像,就不用再重新去下载了。

命令11:查看容器映射关系
* docker port ContainerName                 #可以查看容器当前的映射关系

命令12:查看镜像制作历史

docker history 镜像名 --no trunc            #可以查看镜像制作的历史命令

2. 单一容器管理

每个容器被创建后,都会分配一个 CONTAINER ID 作为容器的唯一标示,后续对容器的启动、停止、修改、删除等所有操作,都是通过 CONTAINER ID 来完成,偏向于数据库概念中的主键.

        docker ps --no-trunc 查看

        docker stop/start CONTAINERID 停止

        docker start/stop MywordPress 通过容器别名启动/停止

        docker inspect MywordPress    查看容器所有基本信息

        docker logs MywordPress   查看容器日志(前台的输出信息)

        docker stats MywordPress   查看容器所占用的系统资源

        docker exec 容器名 容器内执行的命令   容器执行命令

        docker exec -it 容器名 /bin/bash或/bin/sh   登入容器的bash

3. run 基础命令

命令1:
--restart=always                    #容器的自动启动(容器会随着docker进程的启动而自动启动)

举例如下:

[root@localhost ~]# docker images		#先查询镜像,如下:

[root@localhost ~]# docker run --name test1  -d b6306	    #将wordpress镜像通过容器test1运行(为了做对比)
[root@localhost ~]# docker run --name test2 --restart=always -d b6306	#将wordpress镜像通过容器test2自启动
[root@localhost ~]# docker ps -a		#查看两个容器都是UP运行状态,如下图:

[root@localhost ~]# systemctl stop docker
[root@localhost ~]# systemctl start docker		#重启容器
[root@localhost ~]# docker ps -a	#再次查看发现设置了自启动的容器test2随着docker进程的启动而启动了,如图:

命令2:
-h x.xx.xx                         #设置容器主机名
举例如下:
[root@localhost ~]# docker run --name test3 -h axp -d b6306	    #设置主机名为axp并以test3容器运行wordpress镜像
[root@localhost ~]# docker exec test3 hostname			#查看当前主机名,如图:

命令3:
--dns xx.xx.xx.xx                         #设置容器使用的 DNS 服务器
--dns-search                               #DNS 搜索设置

设置搜索域,如:设置搜索域为xiaopeng.com,则访问www的时候会自动搜索成www.xiaopeng.com

命令4:
--add-host hostname:IP            #注入 hostname <> IP 解析
举例如下:
[root@localhost ~]# docker images	#查询镜像
[root@localhost ~]# docker run --name test1 -h axp -d b6306	    #将wordpress镜像通过容器test1运行
[root@localhost ~]# docker exec -it test1 /bin/bash	    #进入test1容器
root@axp:/var/www/html# cat /etc/host		#查看到hostname<>ip解析如下图:

root@axp:/var/www/html# hostname	#查看主机名为axp,如图:

[root@localhost ~]# docker run --name test2 --add-host axp:66.66.66.66 -d b6306		#将wordpress镜像通过容器test2运行并设置解析
[root@localhost ~]# docker exec -it test2 /bin/bash		#进入test2容器
root@113a8f21e03a:/var/www/html# cat /etc/hosts		#查看解析文件,如下图:

root@113a8f21e03a:/var/www/html# exit	#登出
命令5:
--rm        #服务停止时自动删除
举例如下:
[root@localhost ~]# docker images		#查看镜像
[root@localhost ~]# docker run --name test1 -d b630			#将wordpress镜像通过容器test1运行
[root@localhost ~]# docker run --name test2 --rm -d b630		#将wordpress镜像通过容器test2运行并设置随着docker进程的停止容器自动删除
[root@localhost ~]# docker ps -a		#查看两个容器都是UP运行状态
[root@localhost ~]# systemctl restart docker	#重启docker服务
[root@localhost ~]# docker ps -a		#查看容器状态,发现test1容器虽然停止了但是还存在,test2容器已自动删除,如下图;

命令6:

docker run -it --rm b630 /bin/bash         (充当测试机器。常用!)

# /bin/bash 启动命令替换为解释器

# -it 交互模式 tty接口

# 进入容器内部发起测试,测试完成后exit退出,然后当前测试环境就会被自动删除了。

命令7:

Dockfile文件生成镜像命令:

docker    build    -t    wangyang/nginx:v1.0   Dockfile文件路径

镜像导出:

docker save -o  xx.xx.xx  xx.xx.xx.tar

镜像导入:

docker load -i xx.xx.xx.tar

将容器封装成镜像:

docker commit nginx(容器名) axplinux/nginx:v0.1(镜像名)

 👑👑👑结束语👑👑👑

有关【云原生 | 08】Docker之单容器管理的更多相关文章

  1. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  2. ruby-on-rails - 获取 inf-ruby 以使用 ruby​​ 版本管理器 (rvm) - 2

    我安装了ruby​​版本管理器,并将RVM安装的ruby​​实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby​​。有没有办法让emacs像shell一样尊重ruby​​的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el

  3. ruby-on-rails - 事件管理员日期过滤器日期格式自定义 - 2

    是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s

  4. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  5. ruby - (Ruby || Python) 窗口管理器 - 2

    我想用这两种语言中的任何一种(最好是ruby​​)制作一个窗口管理器。老实说,除了我需要加载某种X模块外,我不知道从哪里开始。因此,如果有人有线索,如果您能指出正确的方向,那就太好了。谢谢 最佳答案 XCB,X的下一代API使用XML格式定义X协议(protocol),并使用脚本生成特定语言绑定(bind)。它在概念上与SWIG类似,只是它描述的不是CAPI,而是X协议(protocol)。目前,C和Python存在绑定(bind)。理论上,Ruby端口只是编写一个从XML协议(protocol)定义语言到Ruby的翻译器的问题。生

  6. ruby-on-rails - 事件管理员和自定义方法 - 2

    这是我在ActiveAdmin中的自定义页面ActiveAdmin.register_page"Settings"doaction_itemdolink_to('Importprojects','settings/importprojects')endcontentdopara"Text"endcontrollerdodefimportprojectssystem"rakedataspider:import_projects_ninja"para"OK"endendend我想做的是,当我单击“导入项目”按钮时,我想在Controller中执行rake任务。但是我无法访问该方法。可能是什

  7. ruby-on-rails - (Ruby,Rails) 基于角色的身份验证和用户管理...? - 2

    我正在寻找用于Rails的优质管理插件。似乎大多数现有的插件/gem(例如“restful_authentication”、“acts_as_authenticated”)都围绕着self注册等展开。但是,我正在寻找一种功能齐全的基于管理/管理角色的解决方案——但不是简单地附加到另一个非基于角色的解决方案。如果我找不到,我想我会自己动手......只是不想重新发明轮子。 最佳答案 RyanBates最近做了两个关于授权的railscast(注意身份验证和授权之间的区别;身份验证检查用户是否如她所说的那样,授权检查用户是否有权访问资源

  8. Linux磁盘分区中物理卷(PV)、卷组(VG)、逻辑卷(LV)创建和(LVM)管理 - 2

    文章目录一基础定义二创建逻辑卷2-1准备物理设备2-2创建物理卷2-3创建卷组2-4创建逻辑卷2-5创建文件系统并挂载文件三扩展卷组和缩减卷组3-1准备物理设备3-2创建物理卷3-3扩展卷组3-4查看卷组的详细信息以验证3-5缩减卷组四扩展逻辑卷4-1检查卷组是否有可用的空间4-2扩展逻辑卷4-3扩展文件系统五删除逻辑卷5-1备份数据5-2卸载文件系统5-3删除逻辑卷5-4删除卷组5-5删除物理卷六LVM逻辑卷缩容6-1缩容注意事项6-2标准缩容步骤一基础定义LVM,LogicalVolumeManger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分

  9. 【云原生】SpringCloud-Spring Boot Starter使用测试 - 2

    目录SpringBootStarter是什么?以前传统的做法使用SpringBootStarter之后starter的理念:starter的实现: 创建SpringBootStarter步骤在idea新建一个starter项目、直接执行下一步即可生成项目。 在xml中加入如下配置文件:创建proterties类来保存配置信息创建业务类:创建AutoConfiguration测试如下:SpringBootStarter是什么? SpringBootStarter是在SpringBoot组件中被提出来的一种概念、简化了很多烦琐的配置、通过引入各种SpringBootStarter包可以快速搭建出一

  10. ruby-on-rails - 使用用户或管理员模型和 Basecamp 样式子域设计登录 - 2

    我为Devise用户和管理员提供了不同的模型。我也在使用Basecamp风格的子域。除了我需要能够以用户或管理员身份进行身份验证的一些Controller和操作外,一切都运行良好。目前我有authenticate_user!在我的application_controller.rb中设置,对于那些只有管理员才能访问的Controller和操作,我使用skip_before_filter跳过它。不幸的是,我不能简单地指定每个Controller的身份验证要求,因为我仍然需要一些Controller和操作才能被用户或管理员访问。我尝试了一些方法都无济于事。看来,如果我移动authentica

随机推荐