新手快速入门Docker,轻松掌握Docker安装与使用
yuyutoo 2025-05-09 22:37 16 浏览 0 评论
安装
使用官方安装脚本自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
手动安装
CentOS 7 (使用yum进行安装)
卸载旧版docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils
# Step 2: 添加软件源信息 (推荐使用下面阿里云源)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 添加阿里云源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 开启一些选项 (这一步可跳过)
sudo yum-config-manager --enable docker-ce-nightly
sudo yum-config-manager --enable docker-ce-test
# 关闭选项
sudo yum-config-manager --disable docker-ce-nightly
# 安装 Docker-CE
sudo yum install docker-ce docker-ce-cli containerd.io
验证
sudo docker version
启动docker
sudo systemctl start docker
读者福利:关注小编+转发文章+私信【项目】获取整理好的100+个Java项目视频+源码+笔记
配置镜像加速器
可以上阿里云获取个人加速地址
https://dev.aliyun.com/
https://cr.console.aliyun.com/cn-shenzhen/instances/mirrors
修改daemon配置文件/etc/docker/daemon.json使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://e3b4lt8s.mirror.aliyuncs.com"]
}
EOF
重启
sudo systemctl daemon-reload
sudo systemctl restart docker
hello world
docker run hello-world
命令
查看帮助
docker --help
Usage: docker [OPTIONS] COMMAND
A self-sufficient runtime for containers
Options:
--config string Location of client config files (default "/root/.docker")
-c, --context string Name of the context to use to connect to the daemon (overrides DOCKER_HOST
env var and default context set with "docker context use")
-D, --debug Enable debug mode
-H, --host list Daemon socket(s) to connect to
-l, --log-level string Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
--tls Use TLS; implied by --tlsverify
--tlscacert string Trust certs signed only by this CA (default "/root/.docker/ca.pem")
--tlscert string Path to TLS certificate file (default "/root/.docker/cert.pem")
--tlskey string Path to TLS key file (default "/root/.docker/key.pem")
--tlsverify Use TLS and verify the remote
-v, --version Print version information and quit
Management Commands:
builder Manage builds
config Manage Docker configs
container Manage containers
context Manage contexts
engine Manage the docker engine
image Manage images
network Manage networks
node Manage Swarm nodes
plugin Manage plugins
secret Manage Docker secrets
service Manage services
stack Manage Docker stacks
swarm Manage Swarm
system Manage Docker
trust Manage trust on Docker images
volume Manage volumes
Commands:
attach Attach local standard input, output, and error streams to a running container
build Build an image from a Dockerfile
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
events Get real time events from the server
exec Run a command in a running container
export Export a container's filesystem as a tar archive
history Show the history of an image
images List images
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on Docker objects
kill Kill one or more running containers
load Load an image from a tar archive or STDIN
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes
Run 'docker COMMAND --help' for more information on a command.
查看指定命令帮助
docker images --help
Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]
List images
Options:
-a, --all Show all images (default hides intermediate images)
--digests Show digests
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print images using a Go template
--no-trunc Don't truncate output
-q, --quiet Only show numeric IDs
常用命令
查看本地镜像
docker images
docker images -a # 查看本地所有镜像(包括悬空镜像)
docker images -q # 查看本地镜像的镜像ID信息
docker images -qa
docker images --digests # 显示镜像的摘要写信息
docker images --no-trunc # 查看完整的镜像信息
搜索镜像
docker search nginx
搜索点赞数>30的镜像
docker search -s 30 nginx
docker search --filter=stars=20 nginx
列出自动构建的镜像
docker search --automated nginx
docker search --filter=is-automated=true nginx
拉取镜像
docker pull nginx == docker pull nginx:latest
docker pull nginx:3.2
删除镜像
docker rmi hello-world
强制删除镜像
docker rmi -f hello-world
删除多个镜像
docker rmi -f hello-world nginx
删除全部镜像
docker rmi -f $(docker images -qa)
1
容器命令
容器不但可以包含软件, 容器也可以包含一个操作系统
docker search centos
新建并运行容器
docker run
查看帮助
docker run --help
# Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
运行容器
docker run -it centos
docker run -it centos /bin/bash
-i: 以交互模式启动容器, 和-t搭配使用
-t: 为容器重新分配一个输入终端
docker run -it 0d120b6ccaa8
指定容器新名字
docker run -it --name mycentos centos
查看正在运行的容器
docker ps
查看正在运行+历史运行过的容器
docker ps -a
查看上一次运行的容器
docker ps -l
docker ps -lq
查看最近2次运行的容器
docker ps -n 2
关闭并退出容器
exit
只退出不关闭容器
ctrl+p+q
重启启动容器
docker start ID
docker start 04ac5ae5d5fb
停止容器
docker stop ID
docker stop 04ac5ae5d5fb
强制停止容器
docker kill ID
删除已停止的容器
docker rm ID
强制删除容器
docker rm -f ID
一次性所有容器
docker rm -f $(docker ps -qa)
1
以守护进程启动容器
docker run -d centos # [这样会马上退出]
不退出
docker run -d centos /bin/sh -c "while true; do echo hello soul; sleep 2; done"
查看容器日志
docker logs ID
docker logs -f -t --tail 100 ID
查看容器内运行的进程
docker top ID
docker top e7574dd446d6
查看容器内部细节
docker inspect ID
进入正在运行的容器
docker attach ID
docker exec -t ID /bin/bash
直接容器执行命令
docker exec -t ID ls -l /tmp
从容器拷贝文件到主机上
# docker cp 容器ID:容器内路径 目的主机路径
docker cp 04ac5ae5d5fb:/mnt/test.log /data1
生成新镜像副本
# docker commit 提交容器副本成为一个新的镜像
# docker commit -m="描述" -a="作者" 容器ID 镜像名:版本
docker commit -m="my tomcat" -a="soul" 04ac5ae5d5fb soul/go:1.0
运行自定义镜像
docker run -it -p 7777:8080 soul/tomcat:1.0
指定端口运行
# docker run -it -p 主机端口:容器端口 tomcat
docker run -it -p 8081:8080 tomcat
浏览器访问
http://localhost:8080
随机分配主机端口
docker run -it -P tomcat
后台运行
docker run -d -p 6666:8080 tomcat
指定容器数据卷启动 (等于主机目录挂载到容器指定目录)
# docker run -it -v 主机目录:容器目录 镜像名
docker run -it -v /mydata:/mydata centos
只读权限
docker run -it -v /mydata:/mydata:ro centos
容器数据卷共享
docker run -it --name dc01 soul/centos
docker run -it --name dc02 --volumes-from dc01 soul/centos
docker run -it --name dc03 --volumes-from dc01 soul/centos
Redis运行容器
docker run -p 6379:6379
-v /data1/redis/data:/data
-v /data1/redis/conf/redis.conf:/usr/locak/etc/redis/redis.conf
-d redis:5.0.10 redis-server /usr/local/etc/redis/redis.conf
--appendonly yes
MySQL运行容器
docker run -p 12345:3306 --name mysql
-v /data1/mysql/conf:/etc/mysql/conf.d
-v /data1/mysql/logs:/logs
-v /data1/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456
-d mysql:5.6
备份数据库
docker exec 04ac5ae5d5fb sh -C 'exec mysqldump --all-databases -uroot -p"123456"' > /data1/all-databases.sql
读者福利:关注小编+转发文章+私信【项目】获取整理好的100+个Java项目视频+源码+笔记
提交镜像到阿里云
登录阿里云Docker Registry
$ sudo docker login --username=uisoul registry.cn-shenzhen.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
您可以在访问凭证页面修改凭证密码。
从Registry中拉取镜像
$ sudo docker pull registry.cn-shenzhen.aliyuncs.com/uisoul/gocentos:[镜像版本号]
将镜像推送到Registry
$ sudo docker login --username=uisoul registry.cn-shenzhen.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/uisoul/gocentos:[镜像版本号]
$ sudo docker push registry.cn-shenzhen.aliyuncs.com/uisoul/gocentos:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。
作者:IM魂影
原文:
imsoul.blog.csdn.net/article/details/110531103
相关推荐
- 全局和隐式 using 指令详解(全局命令)
-
1.什么是全局和隐式using?在.NET6及更高版本中,Microsoft引入了...
- 请停止微服务,做好单体的模块化才是王道:Spring Modulith介绍
-
1、介绍模块化单体是一种架构风格,代码是根据模块的概念构成的。对于许多组织而言,模块化单体可能是一个很好的选择。它有助于保持一定程度的独立性,这有助于我们在需要的时候轻松过渡到微服务架构。Spri...
- ASP.NET程序集引用之痛:版本冲突、依赖地狱等解析与实战
-
我是一位多年后端经验的工程师,其中前几年用ASP.NET...
- .NET AOT 详解(.net 6 aot)
-
简介AOT(Ahead-Of-TimeCompilation)是一种将代码直接编译为机器码的技术,与传统的...
- 一款基于Yii2开发的免费商城系统(一款基于yii2开发的免费商城系统是什么)
-
哈喽,我是老鱼,一名致力于在技术道路上的终身学习者、实践者、分享者!...
- asar归档解包(游戏arc文件解包)
-
要学习Electron逆向,首先要有一个Electron开发的程序的发布的包,这里就以其官方的electron-quick-start作为例子来进行一下逆向的过程。...
- 在PyCharm 中免费集成Amazon CodeWhisperer
-
CodeWhisperer是Amazon发布的一款免费的AI编程辅助小工具,可在你的集成开发环境(IDE)中生成实时单行或全函数代码建议,帮助你快速构建软件。简单来说,AmazonCodeWhi...
- 2014年最优秀JavaScript编辑器大盘点
-
1.WebstormWebStorm是一种轻量级的、功能强大的IDE,为Node.js复杂的客户端开发和服务器端开发提供完美的解决方案。WebStorm的智能代码编辑器支持JavaScript,...
- 基于springboot、tio、oauth2.0前端vuede 超轻量级聊天软件分享
-
项目简介:基于JS的超轻量级聊天软件。前端:vue、iview、electron实现的PC桌面版聊天程序,主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议websocket。支持...
- JetBrains Toolbox推出全新产品订阅授权模式
-
捷克知名软件开发公司JetBrains最为人所熟知的产品是Java编程语言开发撰写时所用的集成开发环境IntelliJIDEA,相信很多开发者都有所了解。而近期自2015年11月2日起,JetBr...
- idea最新激活jetbrains-agent.jar包,亲测有效
-
这里分享一个2019.3.3版本的jetbrains-agent.jar,亲测有效,在网上找了很多都不能使用,终于找到一个可以使用的了,这里分享一下具体激活步骤,此方法适用于Jebrains家所有产品...
- CountDownTimer的理解(countdowntomars)
-
CountDownTimer是android开发常用的计时类,按照注释中的说明使用方法如下:kotlin:object:CountDownTimer(30000,1000){...
- 反射为什么性能会很慢?(反射时为什么会越来越长)
-
1.背景前段时间维护一个5、6年前的项目,项目总是在某些功能使用上不尽人意,性能上总是差一些,仔细过了一下代码发现使用了不少封装好的工具类,工具类里面用了好多的反射,反射会影响到执行效率吗?盲猜了一...
- btrace 开源!基于 Systrace 高性能 Trace 工具
-
介绍btrace(又名RheaTrace)是抖音基础技术团队自研的一款高性能AndroidTrace工具,它基于Systrace实现,并针对Systrace不足之处加以改进,核心改进...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- .NET 奇葩问题调试经历之3——使用了grpc通讯类库后,内存一直增长......
- 全局和隐式 using 指令详解(全局命令)
- 请停止微服务,做好单体的模块化才是王道:Spring Modulith介绍
- ASP.NET程序集引用之痛:版本冲突、依赖地狱等解析与实战
- .NET AOT 详解(.net 6 aot)
- 一款基于Yii2开发的免费商城系统(一款基于yii2开发的免费商城系统是什么)
- asar归档解包(游戏arc文件解包)
- 在PyCharm 中免费集成Amazon CodeWhisperer
- 2014年最优秀JavaScript编辑器大盘点
- 基于springboot、tio、oauth2.0前端vuede 超轻量级聊天软件分享
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)