常用Docker容器操作命令

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: !!!!有镜像才能创建容器!!!!!,记下来,要考的!!!讲容器操作命令之前先下载一个centos的镜像(这个命令在上篇《常用Docker镜像操作命令》中有,不会的同学可以去看下)//首先查一下centos[root@iz2ze0lvzs71710m0jegmsz ~]# docker sea...

!!!!有镜像才能创建容器!!!!!,记下来,要考的!!!
讲容器操作命令之前先下载一个centos的镜像(这个命令在上篇《常用Docker镜像操作命令》中有,不会的同学可以去看下)

//首先查一下centos
[root@iz2ze0lvzs71710m0jegmsz ~]# docker search centos
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
centos                             The official build of CentOS.                   5627                [OK]
ansible/centos7-ansible            Ansible on Centos7                              125                                     [OK]
jdeathe/centos-ssh                 OpenSSH / Supervisor / EPEL/IUS/SCL Repos - …   114                                     [OK]
consol/centos-xfce-vnc             Centos container with "headless" VNC session…   99                                      [OK]
centos/mysql-57-centos7            MySQL 5.7 SQL database server                   63
imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              57                                      [OK]
tutum/centos                       Simple CentOS docker image with SSH access      44
centos/postgresql-96-centos7       PostgreSQL is an advanced Object-Relational …   39
kinogmt/centos-ssh                 CentOS with SSH                                 29                                      [OK]
centos/httpd-24-centos7            Platform for running Apache httpd 2.4 or bui…   26
pivotaldata/centos-gpdb-dev        CentOS image for GPDB development. Tag names…   10
guyton/centos6                     From official centos6 container with full up…   9                                       [OK]
drecom/centos-ruby                 centos ruby                                     6                                       [OK]
centos/tools                       Docker image that has systems administration…   4                                       [OK]
darksheer/centos                   Base Centos Image -- Updated hourly             3                                       [OK]
pivotaldata/centos                 Base centos, freshened up a little with a Do…   3
mamohr/centos-java                 Oracle Java 8 Docker image based on Centos 7    3                                       [OK]
miko2u/centos6                     CentOS6 日本語環境                                   2                                       [OK]
pivotaldata/centos-mingw           Using the mingw toolchain to cross-compile t…   2
pivotaldata/centos-gcc-toolchain   CentOS with a toolchain, but unaffiliated wi…   2
indigo/centos-maven                Vanilla CentOS 7 with Oracle Java Developmen…   1                                       [OK]
blacklabelops/centos               CentOS Base Image! Built and Updates Daily!     1                                       [OK]
pivotaldata/centos7-dev            CentosOS 7 image for GPDB development           0
smartentry/centos                  centos with smartentry                          0                                       [OK]
pivotaldata/centos6.8-dev          CentosOS 6.8 image for GPDB development         0
//选择你要的镜像和该镜像版本(不写版本默认是last),把他pull下来(我之前下过了)
[root@iz2ze0lvzs71710m0jegmsz ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
729ec3a6ada3: Already exists
Digest: sha256:f94c1d992c193b3dc09e297ffd54d8a4f1dc946c37cbeceb26d35ce1647f88d9
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
//查看一下本地的镜像
[root@iz2ze0lvzs71710m0jegmsz ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
xiaowang/mytomcat   1.2                 49733849ab9f        18 hours ago        507MB
mongo               latest              191b28dbfefe        28 hours ago        363MB
tomcat              latest              882487b8be1d        6 days ago          507MB
centos              latest              0f3e07c0138f        3 weeks ago         220MB
hello-world         latest              fce289e99eb9        9 months ago        1.84kB

一、新建并启动容器的命令

语法及常用参数:

docker run [OPTIONS] IMAGE(可以是镜像的image id 也可以是镜像的REPOSITORY) [COMMAND]
OPTIONS说明(常用):有些是一个减号,有些是两个减号
--name="容器新名字": 为容器指定一个名称;

-d: 后台运行容器,并返回容器ID,也即启动守护式容器;

-i:以交互模式运行容器,通常与 -t 同时使;

-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-P: 随机端口映射;

-p: 指定端口映射,有以下四种格式

ip:hostPort:containerPort

ip::containerPort

hostPort:containerPort

containerPort

举个例子:

//启动一个容器 这个容器里面运行的是centos系统
#docker run -it centos
//使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
#docker run -it centos /bin/bash
//使用镜像tomcat:latest以交互模式启动一个容器,主机端口7777,docker容器端口8080(这时候可以直接访问localhost:7777就可以进入tomcat主页啦)
#docker run -it -p 7777:8080 tomcat

二、列出当前所有正在运行的容器

语法及常用参数:

docker ps [OPTIONS]
OPTIONS说明(常用):
-a :列出当前所有正在运行的容器+历史上运行过的

-l :显示最近创建的容器。

-n:显示最近n个创建的容器。

-q :静默模式,只显示容器编号。

--no-trunc :不截断输出。

三、退出容器

两种退出方式:

exit  容器停止并退出(自己操作一下:交互模式创建一个centos容器,然后输入exit,再docker ps一下)
ctrl+p+q容器不停止退出(自己操作一下:交互模式创建一个centos容器,然后按ctrl+p+q,再docker ps一下)

四、启动容器

docker start 容器ID或者容器名

五、重启容器

docker restart 容器ID或者容器名

六、停止容器

docker stop 容器ID或者容器名

七、强制停止容器

docker kill 容器ID或者容器名

八、删除已停止的容器

docker rm -f ${docker ps -a -q}
docker ps -a -q | xargs docker rm

重点内容:

1.启动守护式容器:docker run -d 容器名

//使用镜像centos:latest以后台模式启动一个容器
#docker run -d centos
//然后docker ps -a 进行查看, 会发现容器已经退出
#docker ps -a

所以总结一下:
很Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。
例如service nginx start
但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,
这样的容器后台启动后,会立即自杀因为他觉得他没事可做了,
所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行。

2.查看容器日志:docker logs -f -t --tail 容器ID

-t 是加入时间戳
-f 是随最新的日志打印
--tail 数字显示最后多少条

3.查看容器内运行的进程

docker top 容器ID

image

4.查看容器内部细节

docker inspect 容器ID

5.进入正在运行的容器并以命令行交互(重点,记得敲一下)

docker exec -it 容器ID bashShell

[root@iz2ze0lvzs71710m0jegmsz ~]# docker exec -it 0a6da2eccfb4 ls -l /tmp
total 8
-rwx------ 1 root root 1379 Sep 27 17:13 ks-script-0n44nrd1
-rwx------ 1 root root  671 Sep 27 17:13 ks-script-w6m6m_20
重新进入: docker attach 容器ID

上述两个的区别:attach--->直接进入容器启动命令的终端。不会启动新的进程
:exec---->是在容器中打开新的终端,并可以启动新的进程

6.从容器内拷贝文件到主机上

docker cp 容器ID:容器内路径 目的主机路径

[root@iz2ze0lvzs71710m0jegmsz ~]# docker cp 0a6da2eccfb4:/root/test.txt /root/o.txt
相关文章
|
6天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
28 2
|
3天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
4天前
|
缓存 监控 开发者
掌握Docker容器化技术:提升开发效率的利器
在现代软件开发中,Docker容器化技术成为提升开发效率和应用部署灵活性的重要工具。本文介绍Docker的基本概念,并分享Dockerfile最佳实践、容器网络配置、环境变量和秘密管理、容器监控与日志管理、Docker Compose以及CI/CD集成等技巧,帮助开发者更高效地利用Docker。
|
6天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
6天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
6天前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?
|
8天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
8天前
|
NoSQL Redis Docker
【赵渝强老师】使用Docker Compose管理容器
Docker Compose 通过 YAML 文件管理多个容器,简化复杂系统的部署和管理。本文介绍了 Docker Compose 的基本概念,并通过一个包含 Redis DB 和 Python Web 模块的示例,展示了如何使用 Docker Compose 部署和管理多容器应用。手动部署和 Docker Compose 部署的对比突显了 Docker Compose 在系统复杂度增加时的优势。
|
2月前
|
Linux Docker 容器
Docker操作 :容器命令
Docker操作 (四)
|
1月前
|
安全 Shell Linux
docker进入容器命令
docker进入容器命令