Linux运维干货详解
Linux运维干货详解
Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。
[root@fuyimin home]# docker run centos /bin/echo "hellow world"hellow world
docker run -it centos /bin/bash
参数解析:
-t : 在新容器内指定一个伪终端或终端。
-i : 允许你对容器内的标准输入(STDIN)进行交互。
exit
[root@fuyimin home]# docker run -d centos /bin/sh -c "while true;do echo hello world;sleep 1 ;done"716fdf9d9ba4ae9008a5c4bf89b8ff8871c8ca8212403a0b445fca30b4ec841c
列出正在运行的容器:
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
CONTAINER ID:容器ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。
状态有7种:
created(已创建)
restarting(重启中)
running 或 Up(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡)
我们可以使用 docker images 来列出本地主机上的镜像。
1. docker images #列出本机上的镜像 [root@fuyimin home]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 300e315adb2f 7 months ago 209MB# -a , --all 列出所有镜像 # -q , --quiet 只显示镜像的id
各个选项的说明:
REPOSITORY:表示镜像的仓库源。
TAG :镜像的标签。
IMAGE ID :镜像的ID。
CREATED :镜像的创建时间。
SIZE :镜像的大小。
[root@fuyimin home]# docker rmi -f 容器id #删除指定镜像 [root@fuyimin home]# docker rmi -f 容器id 容器id 容器id #删除多个镜像 [root@fuyimin home]# docker rmi -f $(docker images -aq) #删除全部镜像
[root@fuyimin home]# docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 11205 [OK] mariadb MariaDB Server is a high performing open sou… 4259 [OK] mysql/mysql-server Optimized MySQL Server Docker images. Create… 833 [OK] [root@fuyimin home]# docker search mysql --filter=STARS=3000 #按照STARS来过滤 NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 11205 [OK] mariadb MariaDB Server is a high performing open sou… 4259 [OK]
NAME: 镜像仓库源的名称。
DESCRIPTION: 镜像的描述。
OFFICIAL: 是否 docker 官方发布。
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
docker pull 镜像名[:tag] #不写tag默认最新
注:有了镜像才能创建容器。
docker pull centos #下载一个centos镜像
docker run -it centos /bin/bash
参数说明:
-i: 交互式操作。
-t: 终端。
ubuntu: ubuntu 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
docker ps #列出当前正在运行的容器-a #列出当前正在运行的容器+带出历史运行过的容器-n=?#显示最近创建的容器-q #只显示容器编号
exit #直接退出停止容器ctrl +P +Q #容器不停止退出
docker rm 容器id #删除指定镜像,不能删除正在运行的镜像 docker rm -f $(docker ps -aq) #删除所有镜像 docker ps -a -q |xargs docker rm #删除所有镜像
docker start 容器id #启动容器docker restart 容器id #重启容器docker stop 容器id #停止当前正在运行的容器docker kill 容器id #强制停止当前容器
docker run -d 镜像名[root@fuyimin ~]# docker run -d centos 9f7e1269ae08c802cdd8342f6e90367b252cc9a0081fef5745768a09f54fbaf9#docker容器使用后台运行 ,就必须要有一个前台进程,docker发现没有应用,就会自动停止
docker logs -f -t --tail 容器# --tf 显示日志# --tail number 要显示日志条数
docker top 容器id #容器必须启动状态[root@fuyimin ~]# docker top eb21e0562d06 UID PID PPID C STIME TTY TIME CMDroot 11620 11600 0 20:32 pts/0 00:00:00 /bin/bash
docker inspect 容器id[root@fuyimin ~]# docker inspect eb21e0562d06[{"Id": "eb21e0562d06435a3a1d8e36fe3c0f68b0aa955b1e85327ba86021a1bfb4e9d7","Created": "2021-08-04T12:32:56.680271569Z","Path": "/bin/bash","Args": [],"State": {"Status": "running","Running": true,"Paused": false,
1. docker exec -it 容器id /bin/bash #推荐大家使用,因为此退出容器终端,不会导致容器的停止。[root@fuyimin ~]# docker exec -it eb21e0562d06 /bin/bash[root@eb21e0562d06 /]#2. docker attach 容器id[root@fuyimin ~]# docker attach eb21e0562d06
docker cp 容器id:/文件目录/文件名 /主机文件目录
推荐阅读
>>>新手必备-Linux系统安装配置+Xshell远程连接
运维界升职加薪必备的云计算技术,你学了吗?
学完高级运维云计算课程之后,你可以:
跨越90%企业的招聘硬门槛
增加70%就业机会
拿下BAT全国TOP100大厂敲门砖
体系化得到运维技术硬实力
技术大佬年薪可达30w+