Docker安装与基础操作
脚本自动安装Docker
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
debug
如果报错如下,需要修改配置源
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
将源文件备份
cd /etc/yum.repos.d/ && mkdir backup && mv *repo backup/
下载阿里云源文件,注意对应版本
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
更新源里面的地址
sed -i -e "s|mirrors.cloud.aliyuncs.com|mirrors.aliyun.com|g " /etc/yum.repos.d/CentOS-*
sed -i -e "s|releasever|releasever-stream|g" /etc/yum.repos.d/CentOS-*
生成缓存
yum clean all && yum makecache
Docker启动与测试
sudo systemctl start docker# 启动docker
docker run hello-world#测试
运行后会显示下图,说明docker安装成功。
Docker常用命令
基础常用
# 启动Dcoker
systemctl start docker
# 停止Docker
systemctl stop docker
# 重启Docker
systemctl restart docker
# 修改配置后重启Docker
systemctl daemon-reload
systemctl restart docker
# 查看Docker版本
docker version
# 查看Docker信息
docker info
Docker镜像命令
# 查看Docker上已经安装的镜像
docker images
#搜索Docker hub上面的镜像,下面命令搜索Tomcat
docker search tomcat
# 下载镜像
docker pull tomcat[:version]
# 删除镜像
docker rmi tomcat[:version]
# 通过镜像ID删除
docker rmi -f 镜像ID
# 通过镜像ID删除多个
docker rmi -f 镜像名1:TAG 镜像名2:TAG
# 删除全部
# docker images -qa : 获取所有镜像ID
docker rmi -f $(docker images -qa)
容器命令
启动容器
docker run [options] image [command] [arg...]
常用参数
- d: 后台运行容器,并返回容器ID
- i: 以交互式运行容器,通常与-t同时使用
- p: 端口映射,格式为 主机(宿主)端口:容器端口
- t: 为容器重新分配一个伪输入终端,通常与-i同时使用
- -name="name": 为容器指定一个名称
- -dns 8.8.8.8: 为容器指定一个dns服务器,默认与宿主一致
- -dns-search domain:为容器指定一个DNS域名,默认与宿主一致
- h "hostname": 指定容器的hostname
- e arg="value": 设置环境变量
- env-file=[]:从指定文件读入环境变量
- -cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定的cpu运行
- m: 设置容器使用内存最大值
- -net="bridge": 指定容器的网络连接类型,支持bridge/host/none/container四种类型
- -link=[]:添加链接到另外一个容器
- -expose=[]:开放一个端口或一组端口,宿主机使用随机端口映射到开放的端口
实例
docker run --name mynginx -d nginx:latest
# 映射多个端口
docker run -p 80:80/tcp -p 90:90 -v /data:/data -d nginx:latest
查看正在运行的Docker 容器
docker ps
# 常用参数
# 显示所有容器,包括当前没有运行的容器
-a
# 显示最近创建的容器
-l
# 显示最近创建的N个容器
-n
# 静默模式,只显示容器ID
-q
# 不截断输出
--no-trunc
容器启动与退出
# 启动
docker start 容器ID或容器name
# 退出并停止
exit
# 容器不停止退出
ctrl+p+q
# 重启
docker restart 容器ID或容器name
# 停止
docker stop 容器ID或容器name
# 强制停止容器
docker kill 容器ID或容器name
删除容器
# 删除已经停止的容器
docker rm 容器ID或容器name
# 强制删除已经停止或正在运行的容器
docker rm -f 容器ID或容器name
#一次性删除所有正在运行的容器
docker rm -f $(docker ps -qa)
从容器拷贝文件到主机
docker cp 容器ID或容器名称:/文件路径与文件名 宿主机地址
# 实例
拷贝容器coco的tmp文件夹下的info.txt到宿主机的当前位置
docker cp coco:/tmp/info.txt .