一.docker 镜像搜索
(1)描述
docker search : 从Docker Hub查找镜像
(2)语法
docker search [OPTIONS] TERM
(3)选项
–automated:弃用,只列出自动构建类型的镜像
–filter , -f:基于给定条件过滤输出
–format:使用模板格式化显示输出
–limit:Max number of search results ,默认值25
–no-trunc:禁止截断输出
–stars , -s:弃用,只显示收藏数不小于几颗星的镜像,移到–filter中使用
(4)实例
[root@localhost ~]# docker search mysql
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mysql MySQL is a widely used, open-source relati... 11419 [OK]
docker.io docker.io/mariadb MariaDB Server is a high performing open s... 4339 [OK]
docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 847 [OK]
docker.io docker.io/percona Percona Server is a fork of the MySQL rela... 554 [OK]
docker.io docker.io/phpmyadmin phpMyAdmin - A web interface for MySQL and... 322 [OK]
docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 91
docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. ... 88
docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li... 59 [OK]
docker.io docker.io/databack/mysql-backup Back up mysql databases to... anywhere! 49
docker.io docker.io/prom/mysqld-exporter 42 [OK]
docker.io docker.io/deitch/mysql-backup REPLACED! Please use http://hub.docker.com... 41 [OK]
参数说明:
–NAME: 镜像仓库源的名称
–DESCRIPTION: 镜像的描述
–OFFICIAL: 是否 docker 官方发布
–stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
–AUTOMATED: 自动构建。
二.docker 镜像拉取
(1)描述
docker pull : 从镜像仓库中拉取或者更新指定镜像
(2)语法
docker pull [options] name[:tag|@digest]
(3)选项
-a :拉取所有 tagged 镜像
–disable-content-trust :忽略镜像的校验,默认开启
(4)加速
此处使用的是中国科技大学的docker镜像源
在/etc/docker/daemon.json文件中添加下面参数
{
"registry-mirrors" : ["https://docker.mirrors.ustc.edu.cn"]
}
重启docker服务
[root@localhost ~]# systemctl restart docker
(5)实例
[root@localhost ~]# docker pull mysql:8.0.26
三.查看镜像
(1)描述
docker images : 列出本地镜像。
(2)语法
docker images [OPTIONS] [REPOSITORY[:TAG]]
(3)参数
–a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
–digests :显示镜像的摘要信息;
–f :显示满足条件的镜像;
–format :指定返回值的模板文件;
–no-trunc :显示完整的镜像信息;
–q :只显示镜像ID。
(4)实例
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql 8.0.26 0716d6ebcc1a 13 days ago 514 MB
docker.io/rabbitmq management 88b2e6b105da 4 months ago 186 MB
daocloud.io/library/rabbitmq 3.7.28-management f1a77cb119f4 13 months ago 180 MB
daocloud.io/library/tomcat 8.0.45 fa6ad595ba45 4 years ago 357 MB
四.制作容器
(1)描述
docker run :创建一个新的容器并运行一个命令
(2)语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
(3)参数
–a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
–d: 后台运行容器,并返回容器ID;
–i: 以交互模式运行容器,通常与 -t 同时使用;
–P: 随机端口映射,容器内部端口随机映射到主机的端口
–p: 指定端口映射,格式为:主机(宿主)端口:容器端口
–t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–name=“nginx-lb”: 为容器指定一个名称;
–dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
–dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
–h “mars”: 指定容器的hostname;
–e username=“ritchie”: 设置环境变量;
–env-file=[]: 从指定文件读入环境变量;
–cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
–m :设置容器使用内存最大值;
–net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
–link=[]: 添加链接到另一个容器;
–expose=[]: 开放一个端口或一组端口;
–volume , -v: 绑定一个卷
(4)实例
docker run -p 3307:3306 \
-v /data/mysql/conf:/etc/mysql/conf.d \
-v /data/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql --restart=always -d mysql:8.0.26
以mysql:8.0.26镜像运行一个mysql的容器,宿主机的端口为3307,配置文件夹为/data/mysql/conf,数据文件夹为/data/mysql/data;对应的容器端口为3306,配置文件夹为/etc/mysql/conf.d,数据文件夹为/var/lib/mysql。密码为123456,容器名字为mysql,Docker 重启时,容器自动启动,后台运行容器,并返回容器ID。
五.查看容器
(1)描述
docker ps : 列出容器
(2)语法
docker ps [OPTIONS]
(3)参数
–a :显示所有的容器,包括未运行的。
–f :根据条件过滤显示的内容。
–format :指定返回值的模板文件。
–l :显示最近创建的容器。
–n :列出最近创建的n个容器。
–no-trunc :不截断输出。
–q :静默模式,只显示容器编号。
–s :显示总的文件大小。
(4)实例
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ac7597008d52 mysql:8.0.26 "docker-entrypoint..." 15 minutes ago Up 15 minutes 33060/tcp, 0.0.0.0:3307->3306/tcp mysql
e140777c7acd rabbitmq:management "docker-entrypoint..." 4 months ago Exited (128) 3 months ago rabbitmq
–CONTAINER ID: 容器 ID。
–IMAGE: 使用的镜像。
–COMMAND: 启动容器时运行的命令。
–CREATED: 容器的创建时间。
–STATUS: 容器状态。
状态有7种:
created(已创建)
restarting(重启中)
running(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡)
–PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
–NAMES: 自动分配的容器名称
六.容器start/stop/restart/
(1)描述
docker start :启动一个或多个已经被停止的容器
docker stop :停止一个运行中的容器
docker restart :重启容器
(2)语法
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker restart [OPTIONS] CONTAINER [CONTAINER...]
(3)实例
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ac7597008d52 mysql:8.0.26 "docker-entrypoint..." 15 minutes ago Up 15 minutes 33060/tcp, 0.0.0.0:3307->3306/tcp mysql
e140777c7acd rabbitmq:management "docker-entrypoint..." 4 months ago Exited (128) 3 months ago rabbitmq
[root@localhost ~]# docker restart ac7597008d52
ac7597008d52
七.删除镜像
(1)描述
docker rmi : 删除本地一个或多个镜像。
(2)语法
docker rmi [OPTIONS] IMAGE [IMAGE...]
(3)参数
–f :通过 SIGKILL 信号强制删除一个运行中的容器。
–l :移除容器间的网络连接,而非容器本身。
–v :删除与容器关联的卷。
(4)实例
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql 8.0.26 0716d6ebcc1a 13 days ago 514 MB
docker.io/mysql latest 0716d6ebcc1a 13 days ago 514 MB
docker.io/rabbitmq management 88b2e6b105da 4 months ago 186 MB
daocloud.io/library/rabbitmq 3.7.28-management f1a77cb119f4 13 months ago 180 MB
daocloud.io/library/tomcat 8.0.45 fa6ad595ba45 4 years ago 357 MB
[root@localhost ~]# docker rmi -f mysql:latest
Untagged: mysql:latest
Untagged: docker.io/mysql@sha256:99e0989e7e3797cfbdb8d51a19d32c8d286dd8862794d01a547651a896bcf00c
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql 8.0.26 0716d6ebcc1a 13 days ago 514 MB
docker.io/rabbitmq management 88b2e6b105da 4 months ago 186 MB
daocloud.io/library/rabbitmq 3.7.28-management f1a77cb119f4 13 months ago 180 MB
daocloud.io/library/tomcat 8.0.45 fa6ad595ba45 4 years ago 357 MB
八.删除容器
(1)描述
docker rm :删除一个或多个容器。
(2)语法
docker rm [OPTIONS] CONTAINER [CONTAINER...]
(3)参数
f :通过 SIGKILL 信号强制删除一个运行中的容器。
–l :移除容器间的网络连接,而非容器本身。
–v :删除与容器关联的卷。
(4)实例
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ac7597008d52 mysql:8.0.26 "docker-entrypoint..." 15 hours ago Up 15 hours 33060/tcp, 0.0.0.0:3307->3306/tcp mysql
[root@localhost ~]# docker rm -f ac7597008d52
ac7597008d52
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
九.进入容器
(1)描述
docker exec :在运行的容器中执行命令
(2)语法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
(3)参数
–d :分离模式: 在后台运行
–i :即使没有附加也保持STDIN 打开
–t :分配一个伪终端
(4)实例
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
85cbbca512c5 mysql:8.0.26 "docker-entrypoint..." 4 seconds ago Up 3 seconds
[root@localhost ~]# docker exec -it mysql /bin/bash
root@85cbbca512c5:/#
本文详细介绍了Docker的几个核心操作,包括使用`docker search`从DockerHub搜索镜像,`docker pull`拉取镜像,`docker images`查看本地镜像,`docker run`创建并运行容器,以及`docker ps`、`docker start`、`docker stop`、`docker restart`、`docker rm`、`docker rmi`等容器和镜像的管理命令。此外,还提到了使用`docker exec`进入容器执行命令的方法,以及如何配置镜像加速和筛选镜像等实用技巧。
1万+

被折叠的 条评论
为什么被折叠?



