总结命令

下载docker

yum -y update:升级所有包同时也升级软件和系统内核;

yum -y upgrade:只升级所有包,不升级软件和系统内核

安装需要的软件包

yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

设置 yum 源

设置一个yum源,下面两个都可用

(中央仓库)
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo

(阿里仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

选择一个版本并安装:

yum install docker-ce-版本号

当然也可以不选,让它自己选择最新的。

yum install docker-ce

启动 Docker 并设置开机自启

systemctl start docker
systemctl enable docker

相关命令

镜像

下载镜像

docker pull xxx镜像名

或者

docker pull xxx镜像名:latest

latest 相当于版本

上传镜像

docker push images_name

保存为新镜像

docker commit docker_name images_name

删除Docker host中的镜像

docker rmi [OPTIONS] IMAGE [IMAGE...]
  • -f :强制删除;
  • --no-prune :不移除该镜像的过程镜像,默认移除;

rmi只能删除host上的镜像,不会删除registry的镜像。
如果一个镜像对应了多个tag,只有当最后一个 tag被删除时,镜像才被真正删除。

查看镜像的信息

docker images [xxx镜像名]

搜索Docker Hub中的镜像。

docker search [OPTIONS] images

--automated :只列出 automated build类型的镜像;
--no-trunc :显示完整的镜像DESCRIPTION(描述),不省略;
-f <过滤条件>:列出收藏数(点赞)不小于指定值的镜像。
--limit 5:列出前5个镜像

search让我们无须打开浏览器,在命令行中就可以搜索Docker Hub中的镜像。
当然,如果想知道镜像都有哪些tag,还是得访问Docker Hub。

重命名镜像

docker tag old_images new_images 

容器

运行

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • -it参数的作用是以交互模式进入容器,并打开终端。

​ **-i ** 表示交互式的,表示[cmd]是一个有用户输入的程序,比如/bin/bash 和 python 等等。

-t 产生一个终端。

  • -d 以后台方式启动容器

  • -P: 随机端口映射容器内部端口随机映射到主机的端口

  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

  • --name="nginx-lb": 为容器指定一个名称;

  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

  • -m :设置容器使用内存最大值;

  • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

  • --volume , -v: 绑定一个卷 -v的格式为 :

    可以不指定那么就会在host的docker目录下随机创建一个目录用来存储

  • --volumes-from:从另一个容器当中挂载容器中已经创建好的数据卷。

  • --restart=always: 停止运行容器能够自动重启

  • --ip:指定IP(只有使用 --subnet创建的网络才能指定静态IP。)

查看Docker host中当前运行的容器

docker ps [OPTIONS]
docker container ls [OPTIONS]

-a会显示所有状态的容器

查看指定容器的配置信息

docker inspect CONTAINER

进入容器

直接进入容器启动命令的终端,不会启动新的进程。

docker attach

在容器中打开新的终端,并且可以启动新的进程。

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • -d :分离模式: 在后台运行
  • -i :即使没有附加也保持STDIN 打开
  • -t :分配一个伪终端

如果想直接在终端中查看启动命令的输出,用attach;其他情况使用exec。

stop/start/restart容器

停止
docker stop CONTAINER
docker kill CONTAINER
启动
docker start CONTAINER

docker start会保留容器的第一次启动时的所有参数

重启
docker restart CONTAINER

pause / unpause容器

暂停
docker pause CONTAINER
恢复启动
docker unpause CONTAINER

删除容器

docker rm CONTAINER [CONTAINER...]
批量删除所有已经退出
docker rm -v $(docker ps -aq -f status=exited)

网络

查看网络

docker network ls

查看一个网络的详情

docker network inspect network

none网络(什么都没有的网络)

docker run -it --network=none image

host网络(容器的网络配置与host完全一样)

docker run -it --network=host image

bridge网络(相当于NAT)默认此配置

docker run -it --network=bridge image

user-defined网络 (用户创建网络)

docker network create [OPTIONS] NETWORK

--driver, -d bridge 指定驱动程序管理网络

--subnet 表示网段的CIDR格式的子网

--gateway 用于主子网的IPv4或IPv6网关

例:

docker network create --driver bridge my_net
docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1  my_net2

删除网络

docker rm network
ps: 如果网络中有容器连接需要加 -f 参数强制删除,建议不要这样执行,网络中若没有任何容器连接直接执行删除即可.

删除所有未使用的网络

docker network prune 
ps: -f 强制删除,不提供任何确认情况下删除.

将一个容器加入到一个网络

docker network connect 网络名称 容器ID

用于容器与容器之间通信

从网络中断开一个容器的链接

docker network disconnect 网络名称 容器 ID 
ps: -f 参数强制删除

存储

查看linux的默认driver

docker info 

查看volume

docker volume ls

查看详细容器volume信息

docker volume inspect CONTAINER 

在容器和host之间复制数据

 docker cp <host path> CONTAINER:<container path>

删除

docker volume rm volume_name

批量删除volume

docker volume rm $(docker volume ls -q)
posted @ 2023-05-22 23:20  0x1e61  阅读(13)  评论(0编辑  收藏  举报