Docker基础命令

镜像操作

搜索镜像

docker search 镜像名

拉取镜像

docker pull 镜像名:版本号
#不指定版本号指定拉取最新版

[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

查看当前docker有哪些镜像

docker images 

把镜像导出做成tar文件

docker load < nginx-latest.tar

查看指定镜像的详细信息

docker inspect 镜像名或ID

修改镜像名称

docker tag 旧镜像名称:标签 新镜像名称:标签
[root@localhost ~]# docker tag nginx:latest mynginx:1
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
mynginx      1         605c77e624dd   2 years ago   141MB
nginx        latest    605c77e624dd   2 years ago   141MB

删除镜像

docker rmi 镜像名/ID:标签

容器操作

创建容器

在容器中都是会执行任务的,如果任务执行完成,容器就会自动退出

docker create -it --name myname nginx:latest bash

docker create: 命令用于创建一个新的容器。
-it: 这两个选项一起使用,-i 使容器的标准输入保持打开,-t 分配一个伪终端,这样你就可以与容器交互了。
--name myname: 为创建的容器指定一个名称,这里是 myname。如果不指定名称,会随机一个名称
nginx:latest: 指定基础镜像是 nginx 的最新版本 (latest)。
bash: 在容器启动后,执行 bash 命令,让你可以直接进入容器的bash shell进行操作。

查询容器

dockers ps
#查询运行中的容器
docker ps -a
#查询所有存在的容器
docker ps -aq
#只显示所有容器的的ID号

关闭容器

docker stop 容器名/ID

启动容器

docker start 容器名/ID

删除容器

#容器需要停止后才可以进行删除操作
#删除容器
docker rm 容器名/ID
#强制删除容器
docker rm -f 容器名/ID

删除所有容器

#使用for循环一个一个停止删除
for i in $(docker ps -aq);do docker stop $i ; docker rm $i ;done

docker ps -aq | xargs docker stop | xargs docker rm
#docker ps -aq:docker ps 是用来列出所有容器的命令。
#-a 参数表示列出所有容器,包括已经停止的容器。
#-q 参数让输出只包含容器的ID,每个ID一行,这样就得到了一个仅包含容器ID的列表,非常适合用于脚本处理。
#|(管道符号): 管道符号用来将前一个命令的输出作为后一个命令的输入。
#xargs docker stop:xargs 命令读取来自标准输入的数据,并将这些数据转换成命令行参数传递给后面的命令。在这里,它接收了前面docker ps -aq产生的容器ID列表。
#docker stop 命令会停止指定的容器。由于通过管道传递了所有容器ID,此命令会停止所有正在运行的容器。
第二个
#| xargs docker rm:
#再次使用管道和xargs,这次是紧接着前一个命令之后,利用之前停止的所有容器的ID列表。
#docker rm 用于删除一个或多个容器。这里,它会删除所有已被停止的容器(由第一个命令序列停止的那些)。

映射端口

docker -d -P nignx
#-P 随机映射端口
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                   CREATED         STATUS         PORTS                                     NAMES
6a9cb70dd6ac   nginx     "/docker-entrypoint.…"   4 seconds ago   Up 3 seconds   0.0.0.0:32768->80/tcp, :::32768->80/tcp   beautiful_mestorf

docker run -d -p 80:80 nignx
#-p 把主机的80端口映射到容器中的80端口
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                   CREATED         STATUS         PORTS                               NAMES
622bd7f4fb69   nginx     "/docker-entrypoint.…"   6 seconds ago   Up 5 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   festive_merkle

创建并启动容器

docker run -it nginx:latest 
#docker run 创建并启动容器

在后台运行容器

docker run -d nginx
#-d 在后台运行容器,不占用终端

在容器启动时进入容器内部

docker run -it nginx bash
[root@localhost ~]# docker run -it nginx bash
root@b5549c3650c9:/# exit
exit

关闭容器后删除容器

docker -it  --rm nginx sleep 1
#--rm 在容器退出后删除容器

在容器运行中进入容器内部

docker exec -it 容器名称/ID bash

使用容器制作镜像

docker export 容器名/ID > 新镜像名.tar
#docker export e5ae9b8af237 > mynginx.tar

将制作的镜像导入docker

cat 新镜像名.tar | docker import - 新镜像名:标签
#cat mynginx.tar | docker import - mynginx:1.0

数据卷

挂载数据卷到容器中

docker run -d -v /data1 -v /data2 --name web nginx:latest
-v /data1 -v /data2: 这里尝试将主机的两个目录挂载到容器中

把主机中的目录挂载到docker中

docker run -d -v /var/www/:/data1 --name web-1 nginx:latest
#-v /var/www/:/data1 将主机的/var/www挂载到容器中的/data1目录中

继承容器中的数据卷

docker run -it --volumes-from web --name db1 nginx:latest bash

--volumes-from web: 表明新容器将从名为web的容器中继承所有数据卷。这意味着,如果web容器挂载了任何数据卷,db1容器也将拥有对这些数据卷的访问权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值