docker常见命令

【容器】

1.创建容器

 docker create -it --name f_container centos:latest

create:关键字

centos:latest:即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。另外,Docker会检查本地是否存在指定的镜像;。不存在就从公有仓库下载

-it:是两个参数,-i:interactive容器具有交互功能,-t:容器将提供伪终端。

--name:指定生成的容器的名字,允许空,如果不指定会自动生成。

2.查看所有容器

docker ps -a

-a  指所有,不要则为当前。

 

3.开启容器

 docker start ce4ce0f150e4

最后的是前面语句查询出来的容器Id号。或者加上查询的Name

 

4.进入容器

docker exec -it ce4ce0f150e4 bash

这里的docker id也可以换成name

 

 

5.一键 创建/开启/进入  容器  (重点)  =》(create+start+exec)

docker run -it centos:latest  /bin/bash

如果指定了端口号

docker run -it -p 7001:8001 --name f_container centos:latest  /bin/bash

如果想让docker在后台以守护态的形式存在

docker run -it -d --name f_container centos:latest

 加了-d表示进入守护态。此时没有 /bin/bash  也就是没进容器,所以可以通过

docker  exec -it f_container bash

进入

 

6.退出容器

exit

 

7.停止容器

docker stop [docker_id]

 

8.复制文件

 $ docker cp 宿主机绝对路径  容器id:路径

 

 

【安装常用软件】

yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop unzip telnet

 

【docker依赖】

需要CentOS7,且不低于3.10

uname -r

查看当前CentOS版本

 

【更新缓存】 linux系统中

yum clean all && yum makecache

 

【列出可用的可安装的docker版本】

yum list docker-ce showduplicates | sort -r

 

 

【指定docker 源】

curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

这里的代码意思是 将阿里云服务器的docker库文件 下载到文件夹里的docker-ce.repo文件

然后需要刷新缓存,就可以利用上面的与来查看可用的docker-ce版本了

 

【配置仓库源】

一般仓库源都是国外的,下载速度比较慢,这边需要配置成阿里云的仓库

首选创建文件

mkdir -p /etc/docker

创建一个空文件(如果没有则创建,有则无事发生)

touch /etc/docker/daemon.json

编辑

vim /etc/docker/daemon.json

 填入以下命令

{
      "registry-mirrors":[
           "https://8xpk5wnt.mirror.aliyuncs.com"
    ]  
}

修改之后,重启daemon

systemctl daemon-reload
systemctl enable docker
systemctl restart docker

 

【查看docker进程】

ps -ef|grep docker

解析:

比如出现了以下语句

root      11462      1          0      17:33         ?           00:00:00    /usr/bin/dockerd

分别表示:

UID        PID       PPID     C      STIME      TTY          TIME           CMD

复制代码
ps:将某个进程显示出来

-A  显示所有程序。 

-e  此参数的效果和指定"A"参数相同。

-f  显示UID,PPIP,C与STIME栏位。 

grep命令是查找

中间的|是管道命令 是指ps命令与grep同时执行

这条命令的意思是显示有关Apachejetspeed有关的进程

UID PID PPID C STIME TTY TIME CMD

各相关信息的意义:
UID 程序被该 UID 所拥有
PID 就是这个程序的 ID 
PPID 则是其上级父程序的ID
C CPU 使用的资源百分比
STIME 系统启动时间
TTY 登入者的终端机位置
TIME 使用掉的 CPU 时间。
CMD 所下达的指令为何
复制代码

 

【安装nginx】

docker pull  nginx

搜索仓库中的nginx,会显示stars和官方official标志

docker search nginx

 

【显示已拉取的所有镜像】

docker image ls

 或者是

docker  images

 

【删除镜像】

docker rmi  [img_id]

注意:这里是rmi,删除容器是rm。

 

【docker运行nginx】

docker run -d -p 80:80 nginx

-d表示以守护态后台运行,-p表示端口映射  宿主机的80端口映射容器的80端口。

此时可以直接 用    [宿主机IP]:80  来访问容器内的80端口,也就是nginx的起始页面。

 

【查看宿主机IP】

ip  a

找到ens33对应的inet地址

 

【注意】

docker  ps  -a  是查看所有容器,包括正在运行和已经退出的容器。

而 docker ps   只显示正在运行的容器

 

【docker的生命周期,整个流程以及命令】

 

 

【清屏】

屏幕上满是命令,想重新展开空白屏幕。输入

clear

 

 

 

【查看docker的信息】

docker info

可以看到

 

 有一个存放路径:

直接

ls /var/lib/docker

就可以看到里面的所有文件夹,然后继续使用  ls指令

最终达到镜像库里面 

ls /var/lib/docker/image/overlay2/imagedb/content/sha256/ -l

里面的Id号和 docker  images里面的Id号对应

 

 

 

【临时开启一个容器,退出后删除】

docker  run -it  --rm centos:7.8.2003 bash

也就是在进入命令之前加入了  --rm 命令

然后使用

exit

退出后,docker ps -a找不到下载的centos容器。

 

 

【docker 只显示镜像Id】

docker  images -q

或者

docker images --format "{{.ID}}--{{.Repository}}"

使用  --format  参数

 

【批量删除镜像、容器】

docker rmi `docker images -aq`

容器

docker rm `docker ps -aq`

 

 

【保存镜像到某一个文件】

docker image save nginx > /opt/nginx.tgz

这里使用了 image  save指令,将nginx导入到opt文件夹下的nginx.tgz压缩文件。

大于号表示重定向,本该是将结果显示在屏幕,这里重定向到压缩文件。并且是覆盖的形式,如果是 >> 则为追加的形式

然后可以使用

ls /opt/ -l

显示出文件,如下图

 【导入本地镜像】

上面已经将nginx镜像导入了/opt/nginx.tgz。现在删除nginx镜像,然后导入本地的镜像

docker  image load -i /opt/nginx.tgz

 

 

【容器的运行必须至少有一个前台进程】

1.容器内的进程必须在前台运行,否则容器会退出

2.容器什么事情也不做也会挂掉,必须有一个前台进程在运行

比如

直接使用

docker run centos

会产生很多个容器,但容器内没有程序再跑,所以直接挂掉了

所以必须在run 命令后面加上-it 表示进入容器并产生交互行为。一般结尾加bash。也可以是其他,比如 ping  baidu.com

docker run -it centos ping baidu.com

 

 

【实时查看容器日志】

docker logs -f   [container_id]

 

 

【查看容器的具体参数信息】

docker  container inspect   [container_id]

container inspect  容器监视

 

【查看容器的端口映射】

docker port  [container_id]

比如

首先运行一个nginx 容器

 

 然后就可以查看端口映射关系

表示容器内的80端口,映射到宿主机的85端口

 

然后在本地使用     [host_id]:85   就可以访问到nginx的欢迎界面

 

【容器的自定义端口映射和随机端口映射】

上面可以看到

docker  run -d --name c_nginx -p 85:80 nginx

是自定义的宿主机85对应容器80,使用的是  -p  命令。

如果想随机端口,则为

docker run -d --name c_nginx -P nginx

这里是大写命令  -P

 

 

【提交容器生成镜像】

想要生成自定义的镜像,比如一般最新的CentOS镜像是一个纯空壳,甚至没有vim。所以,我想要生成一个带有vim的镜像。

首先是开启一个容器

docker run -it 8b797d41a71c bash

利用最新版CentOS生成一个容器,然后进入,然后下载vim

yum  install -y vim

退出容器后在

docker commit b16cbb91a754 adu/centos-vim

利用docker Commit   [container_id]   [u_name]/[tool_name]生成镜像

最后进入这个镜像就可以使用vim编辑txt文件,而一般的Centos镜像,进去之后是无法使用vim的。

 

posted @   RookieCoderAdu  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示