注:详细命令及用法可访问菜鸟教程-docker命令大全
一、基于linux安装Docker
1、下载关于Docker的依赖环境
#先更新升级软件包sudo apt update或yum update #centos yum -y install yum-utils device-mapper-persistent-data lvm2 #ubuntu sudo apt install apt-transport-https ca-certificates curl software-properties-common
2、设置镜像下载Docker的镜像源
#centos yum-config-manager --add-repo #ubuntu sudo mkdir -p /etc/apt/keyrings/ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
3、安装Docker
#centos yum makecache fast yum -y install docker-ce #ubuntu sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io
4、启动Docker,并设置为开机自动启动,测试
# 启动Docker服务 systemctl start docker # 设置开机自动启动 systemctl enable docker # 测试 docker run hello-world
二、Docker启动与停止
1、启动docker
sudo service docker start
2、停止docker
sudo service docker stop
3、重启docker
sudo service docker restart
三、镜像操作
1、查找镜像
docker search 镜像名称
或者到官网https://hub.docker.com/搜索
2、拉取镜像到本地
docker pull 镜像名称 #在hub.docker.com(官方docker镜像仓库)右侧有拉取镜像的地址
3、查看全部本地镜像
docker images
4、删除本地镜像
docker image rm 镜像id 或 docker rmi 镜像id
5、修改镜像名称
docker tag 镜像id 新镜像名称:版本
四、容器操作
1、运行容器
简单操作
docker run 镜像的标识|镜像名称[tag]
常用的参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[tag] # -d: 代表后台运行容器 # -p: 宿主机端口:容器端口: 为了映射当前Linux的端口和容器的端口 # --name 容器名称: 指定容器的名称
2、查看正在运行的容器
docker ps [OPTIONS]
# OPTIONS说明: # -a: 代表查看全部的容器,包括没有运行 # -q: 只查看容器的标识 # -f: 根据条件过滤显示的内容 # --format: 指定返回值的模板文件 # -l: 显示最近创建的容器 # -n: 列出最近创建的n个容器 # --no-trunc: 不截断输出 # -s: 显示总的文件大小
3、容器自启动
创建容器时
docker run -d --restart=always --name 设置容器名 使用的镜像 #(上面命令 --name后面两个参数根据实际情况自行修改)
# Docker 容器的重启策略如下: --restart具体参数值详细信息: no // 默认策略,容器退出时不重启容器; on-failure // 在容器非正常退出时(退出状态非0)才重新启动容器; on-failure:3 // 在容器非正常退出时重启容器,最多重启3次; always // 无论退出状态是如何,都重启容器; unless-stopped // 在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器。
修改已有容器
docker update --restart=always 容器ID(或者容器名) (容器ID或者容器名根据实际情况修改)
4、查看容器的日志
docker logs -f 容器id # -f: 可以滚动查看日志的最后几行
5、进入到容器内部
docker exec -it 容器id bash
6、启动容器
docker start 容器id
7、停止容器
# 停止指定的容器 docker stop 容器id # 停止全部容器 docker stop $(docker ps -qa)
8、删除容器
# 删除指定容器 docker rm 镜像id # 删除全部容器 docker rm $(docker ps -qa)
8、查看容器运行参数等详细信息
docker inspect 容器名
五、创建容器实操
以flame导航主页为例
1、下载(拉取)flame镜像文件
在https://hub.docker.com搜索框中搜索flame
可以看见右侧有docker pull command拉取镜像的命令,以windows为例,打开cmd输入以上命令即可下载docker镜像
2、配置docker新建容器
然后依旧在控制台输入下列命令,它是组携带了各种参数的命令
docker run -dit -p 301:5005 -v D:\Docker\flame\data:/app/data -e PASSWORD=admin --restart=always --name flame pawelmalak/flame:latest
在上面代码中各部分的意义:
docker run 是指固定创建容器语句
-dit 其中 d是指-d 后台运行容器,并返回容器ID,i是指 以交互模式运行容器,通常与 -t 同时使用,t是指-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-p 301:5005 是指容器端口5005映射到301
-v D:\Docker\flame\data:/app/data 是指将容器路径/app/data映射到本机路径D:\Docker\flame\data
-e PASSWORD=admin 是指指定一个参数,具体参数要看镜像的描述
-restart=always 是指容器自动启动,或意外弹出后自动启动
–name flame 是指为容器命名
pawelmalak/flame:latest 镜像名称,docker images可以查看全部
代码运行成功后打开浏览器输入:http://localhost:301,有页面显示则表示安装成功了。
以上是docker的基本使用命令以及实际容器搭建。
————————————————
版权声明:本文为CSDN博主「求关注的加菲猫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
https://blog.csdn.net/qq_33957967/article/details/124361475
六、docker网络安全管理
docker会直接操作linux的iptables防火墙规则,所以常用的ufw等高层工具无法干预docker的网络。需要直接写入iptables规则
1、查看当前docker-user表规则,-t 和filter可以省略,代表查看filter表;DOCKER-USER为链名;v代表统计规则匹配的数量;--line-numbers表示将规则排序列出来
iptables -t filter -L DOCKER-USER -v --line-numbers
2、禁止某些所有IP访问,其中 -I DOCKER-USER 1表示插入到第一行,-s代表来源,-p tcp 表示匹配tcp协议 --dport 表示端口号。-j DROP表示忽略,表现为无响应;还可以配置accept(接受)、REJECT(拒绝)
iptables -I DOCKER-USER 1 -s 0.0.0.0 -p tcp --dport 6379 -j DROP
3、如果规则配置错了,还可以删除,首先使用第一个命令查看当前链的表规则,并列出序号。使用-D表示删除,1表示第几个规则。
iptables -D DOCKER-USER 1
七、docker私有容器仓库的登录使用
如搭建使用了docker私有仓库,有几个注意事项:
1、如果私有仓库没有https加密,需要在docker配置中添加白名单
#sudo编辑docker的配置文件"/etc/docker/daemon.json",在配置json中添加以下内容,注意json格式,元素之间要逗号间隔: "insecure-registries" : ["docker的私有仓库IP:端口"]
2、重启docker
sudo systemctl restart docker
3、登录与登出
#登录仓库 sudo docker login 仓库地址:端口 #登出仓库 sudo docker logout 仓库地址:端口