下载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)
标签:总结,容器,CONTAINER,network,--,命令,镜像,docker
From: https://www.cnblogs.com/Wesuiliye/p/17422059.html