这里不多啰嗦了,像什么是Docker之类的我就不写了。
container
kənˈteɪnər
容器
Docker的安装有多种,这里只提供两种方式安装
rpm资源下载
可以到官网复制地址使用wget下载,或者直接从我这里下载:http://linfeng.vip:11119/s/6VIk 密码:24568
安装Container-io
安装container-io,由于container-io需要秘钥,所以需要使用yum安装方式。
所有安装步骤都是有顺序的,顺序乱了,无法安装。
# 在你上传好文件的目录下使用下面命令
yum localinstall containerd.io-1.2.6-3.3.fc30.x86_64.rpm
安装Docker相关三个rpm
三个安装过程中不要使用yum localinstall,有相互依赖关系,自动下载。
xxxxxxxxxx
# 安装Docker-Ce的依赖
rpm -ivh libcgroup-0.41-19.el8.x86_64.rpm
# 安装Docker客户端
rpm -ivh docker-ce-cli-19.03.13-3.el8.x86_64.rpm
# 安装Docker-ce
rpm -ivh docker-ce-19.03.13-3.el8.x86_64.rpm
为本地yum提供远程repo信息
xxxxxxxxxx
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
安装依赖
xxxxxxxxxx
yum install -y https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
安装docker-ce
bash
xxxxxxxxxx
yum install -y docker-ce
xxxxxxxxxx
# 开启Docker服务
systemctl start docker
# 设置Docker服务开机自启
systemctl enable docker
Docker安装成功了吗?不知道?可以用下面命令来查看docker状态
xxxxxxxxxx
docker info
然后如果出现一大坨Docker的信息代表安装成功,其中还可以查看Docker版本Server Version: 19.03.13
默认情况下Docker从Docker Hub上下载镜像资源,但速度很慢,可以通过配置国内的镜像加速器来解决。
如何验证是否成功换成阿里云的了?很简单,还记得刚刚提到的Docker查看状态命令吗?
xxxxxxxxxx
docker info
对就是这个命令,然后找到Registry Mirrors
,看下下面的链接是否为阿里云的即可
搜索镜像
xxxxxxxxxx
docker search 镜像名称
下载镜像
xxxxxxxxxx
docker pull 镜像名称:tag
tag:版本,可省略,省略默认为最新版lastest
查看本机镜像
xxxxxxxxxx
docker images
删除镜像
xxxxxxxxxx
docker rmi 镜像名:tag|镜像id
根据镜像创建容器(不启动)
xxxxxxxxxx
docker create --name 自定义容器名 -p 外部端口:内部端口 [-e 参数名=参数值] 镜像名:tag
创建并启动容器
xxxxxxxxxx
docker run --name 自定义名称 -p 外部端口:内部端口 [-e 参数名=参数值] -d 镜像名:tag
可用参数说明
xxxxxxxxxx
docker run --help
-d, --detach=false 指定容器运行于前台还是后台,默认为false
-i, --interactive=false 打开STDIN,用于控制台交互
-t, --tty=false 分配tty设备,该可以支持终端登录,默认为false
-u, --user="" 指定容器的用户
-a, --attach=[] 登录容器(必须是以docker run -d启动的容器)
-w, --workdir="" 指定容器的工作目录
-c, --cpu-shares=0 设置容器CPU权重,在CPU共享场景使用
-e, --env=[] 配置信息
-m, --memory="" 指定容器的内存上限 ****
-P, --publish-all=false 指定容器暴露的端口
-p, --publish=[] 指定容器暴露的端口
-h, --hostname="" 指定容器的主机名
-v, --volume=[] 给容器挂载存储卷,挂载到容器的某个目录
--volumes-from=[] 给容器挂载其他容器上的卷,挂载到容器的某个目录
--cap-add=[] 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities
--cap-drop=[] 删除权限,权限清单详见:http://linux.die.net/man/7/capabilities
--cidfile="" 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法
--cpuset="" 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU
--device=[] 添加主机设备给容器,相当于设备直通
--dns=[] 指定容器的dns服务器
--dns-search=[] 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件
--entrypoint="" 覆盖image的入口点
--env-file=[] 指定环境变量文件,文件格式为每行一个环境变量
--expose=[] 指定容器暴露的端口,即修改镜像的暴露端口
--link=[] 指定容器间的关联,使用其他容器的IP、env等信息
--lxc-conf=[] 指定容器的配置文件,只有在指定--exec-driver=lxc时使用
--name="" 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
--network="bridge" 容器网络设置:
bridge 使用docker daemon指定的网桥
host //容器使用主机的网络
container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源
none 容器使用自己的网络(类似--net=bridge),但是不进行配置
--privileged=false 指定容器是否为特权容器,特权容器拥有所有root权限
--restart="no" 指定容器停止后的重启策略:
no:容器退出时不重启
on-failure:容器故障退出(返回值非零)时重启
always:容器退出时总是重启
--rm=false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
--sig-proxy=true 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理
启动容器
xxxxxxxxxx
docker start 容器名
停止容器
xxxxxxxxxx
docker stop 容器名
重启容器
xxxxxxxxxx
docker restart 容器名
暂停容器
xxxxxxxxxx
docker pause 容器名
恢复容器
xxxxxxxxxx
docker unpause 容器名
查看启动着的容器
xxxxxxxxxx
docker container ls
查看被创建的容器
xxxxxxxxxx
docker container ls -a
删除容器
xxxxxxxxxx
docker rm 容器名
容器必须处理关闭状态才能删除
查看容器状态
查看容器内部进程
xxxxxxxxxx
docker top 容器名
使用这个命令查看容器内部有什么软件在运行。
查看容器内部详情
xxxxxxxxxx
docker inspect 容器名
docker的运维人员使用较多。
查看容器日志
xxxxxxxxxx
docker logs -f 容器名
查看容器内部日志,多用在启动容器内软件出现问题时。
进入容器内部(经常使用)
xxxxxxxxxx
docker exec -it 容器名 /bin/bash
*文章作者:* 林风
*文章链接:* https://linfeng12138.github.io/2024/02/21/docker-xue-xi-bi-ji/