侧边栏壁纸
博主头像
可乐呢o3o博主等级

少些比较,多些谦虚。

  • 累计撰写 53 篇文章
  • 累计创建 67 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

docker笔记

liuker
2022-09-08 / 0 评论 / 0 点赞 / 49 阅读 / 6911 字

docker

服务器版本

serverversion.png

docker镜像

查看本地上的docker镜像

当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。

# 查看本地上的docker镜像
docker images

dockerimages.png

  • REPOSITORY: 表示镜像的仓库源
  • TAG: 镜像的标签
  • IMAGE ID: 镜像ID
  • CREATED: 镜像创建时间
  • SIZE: 镜像大小

从dockerhub获取新镜像

[root@izj6c5kvgj5i9e8z57mn7xz ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
eff15d958d66: Pull complete 
1e5351450a59: Pull complete 
2df63e6ce2be: Pull complete 
9171c7ae368c: Pull complete 
020f975acd28: Pull complete 
266f639b35ad: Pull complete 
Digest: sha256:097c3a0913d7e3a5b01b6c685a60c03632fc7a2b50bc8e35bcaa3691d788226e
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@izj6c5kvgj5i9e8z57mn7xz ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    ea335eea17ab   9 days ago     141MB
mysql        latest    0716d6ebcc1a   2 months ago   514MB

如果dockerhub有该镜像,则会从dockerhub上下载最新版本的镜像。

如果想要指定版本,只需要在后边加上:[版本号]

比如

docker pull ubuntu:jammy-20211029

如果想指定安装源,只需要添加参数--registry-mirror=[源地址]

搜索镜像

docker search httpd

删除镜像

docker rmi [IMAGE ID]

删除所有容器:

docker rmi $(docker images -q)

运行镜像

在下载完镜像后,可以通过docker run 运行镜像,运行镜像时候会产生一个容器。

更多的时候,需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加 -d 参数来实现。

注: 容器是否会长久运行,是和 docker run 指定的命令有关,和 -d 参数无关。

使用 -d 参数启动后会返回一个唯一的 id,也可以通过 docker ps -a 命令来查看容器信息。如果不加 -a 则只会显示正在运行的容器。

docker run ubuntu

docker run 参数

docker run [可选参数] image

# 参数说明(部分)
--name="Name"		容器名字
-d					后台方式运行 (常用)
-it					使用交互方式运行,可以进入容器 (常用)
-p					暴露容器端口	-p 8080:8080 (前主机端口,后容器端口)
		-p的用法比较多。
			格式:
				-p 主机端口:容器端口 (常用)
				-p 容器端口
				容器端口(不加-p)
-P					大P为随机指定容器端口
-v					挂载卷(数据持久化)
-net				容器的网络参数(常用!)
		–net=bridge 这个是默认值,连接到默认的网桥。
		–net=host 共享主机网络空间,可以像普通进程一样进行通信
		–net=container:NAME_or_ID 让 Docker 和已存在的容器共享 IP 地址和端口等网络资源,两者进程可以直接通过 lo 环回接口通信。
		–net=none 让 Docker 将新容器放到隔离的网络栈中,但是不进行网络配置。之后,用户可以自己进行配置	
# 使用docker创建一个ubuntu镜像,并进入容器交互运行。
[root@izj6c5kvgj5i9e8z57mn7xz ~]# docker run -it ubuntu /bin/bash
root@5d2ba7787309:/# uname -a
Linux 5d2ba7787309 3.10.0-1160.41.1.el7.x86_64 #1 SMP Tue Aug 31 14:52:47 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
root@5d2ba7787309:/# 


# 此处还有点区别,使用-it运行容器,需要在image id后边加上要进入的入口文件
# 注意,此时已经进入到容器内的ubuntu系统。
# 如果想要退出容器,可以使用exit命令(使用后容器会停止)。
# 如果想不停止退出,可以按 ctrl+p ctrl+q

如果不加-d参数,在使用exit命令后,容器会自动停止。

root@5d2ba7787309:/# exit   
exit
[root@izj6c5kvgj5i9e8z57mn7xz ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                     PORTS     NAMES
5d2ba7787309   ubuntu    "/bin/bash"   2 minutes ago   Exited (0) 6 seconds ago             agitated_proskuriakova
[root@izj6c5kvgj5i9e8z57mn7xz ~]# 
# 可以看到,ubuntu容器已经停止了(Exited (0) 6 seconds ago)。

在使用ctrl+p ctrl+q命令后,容器会退出,但不会停止。

查看容器

通常使用 docker ps -a

# 查看正在运行的容器
docker ps
# 查看当前所有镜像(包括已退出的)
docker ps -a
# 只查看容器id
docker ps -q

[root@izj6c5kvgj5i9e8z57mn7xz ~]# docker ps -q
ccf31a10f64d
[root@izj6c5kvgj5i9e8z57mn7xz ~]# 

dockerpsa.png

如果想要查看所有运行过的镜像,可以加上 -a参数

进入容器

docker exec : 在运行的容器中执行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS说明:

  • -d : 分离模式: 在后台运行
  • -i : 即使没有附加也保持STDIN 打开
  • -t : 分配一个伪终端

以ubntu镜像为例:

[root@izj6c5kvgj5i9e8z57mn7xz ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS          PORTS     NAMES
ccf31a10f64d   ubuntu    "bash"    53 seconds ago   Up 53 seconds             sleepy_ellis
[root@izj6c5kvgj5i9e8z57mn7xz ~]# docker exec -it ccf31a10f64d /bin/bash
root@ccf31a10f64d:/# 

停止镜像

docker stop [CONTAINER ID]

删除镜像

删除镜像必须要保证容器已经停止。

docker rm [CONTAINER ID]

如果想批量删除容器

docker rm $(docker ps -aq)
0

评论区