docker的安装以及使用命令
docker的安装#
安装docker
https://docs.docker.com/install/linux/docker-ce/centos/#set-up-the-repository
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。
本文介绍 Docker CE 的安装使用。
移除旧的版本:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
安装一些必要的系统工具:
sudo yum install yum-utils device-mapper-persistent-data lvm2
添加软件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 缓存:
sudo yum makecache fast
安装 Docker-ce:
sudo yum install docker-ce docker-ce-cli containerd.io
启动 Docker 后台服务
sudo systemctl start docker
开机自启动docker
sudo systemctl enable docker
测试运行 hello-world
docker run hello-world
镜像加速(也可用阿里的私有镜像库)
DOCKER镜像仓库地址
https://hub.docker.com/explore/
下载镜像方法:docker pull 镜像名:版本 go-ethereum Docker镜像下载地址:
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决
网易的镜像地址:http://hub-mirror.c.163.com。
vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
重新启动docker
sudo systemctl daemon-reload
sudo systemctl restart docker
删除 Docker CE
执行以下命令来删除 Docker CE:
sudo yum remove docker-ce
sudo rm -rf /var/lib/docker
Docker版本查看
docker -v
[root@bogon ~]# docker -v
Docker version 1.13.1, build 94f4240/1.13.1
Docker安装完成
2.3 Docker的启动与停止#
systemctl命令是系统服务管理器指令
启动docker:
systemctl start docker
停止docker:
systemctl stop docker
重启docker:
systemctl restart docker
查看docker状态:
systemctl status docker
开机启动:
systemctl enable docker
查看docker概要信息
docker info
查看docker帮助文档
docker --help
3.1 镜像相关命令#
3.1.1 查看镜像#
docker images
REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
3.1.2 搜索镜像#
如果你需要从网络中查找需要的镜像,可以通过以下命令搜索
docker search 镜像名称
NAME:仓库名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的
3.1.3 拉取镜像#
拉取镜像就是从中央仓库中下载镜像到本地
docker pull 镜像名称
例如,我要下载centos7镜像
docker pull centos:7
3.1.4 删除镜像#
按镜像ID删除镜像
docker rmi 镜像ID
删除所有镜像
docker rmi docker images -q
3.2 容器相关命令#
3.2.1 查看容器#
查看正在运行的容器
docker ps
查看所有容器
docker ps –a
查看最后一次运行的容器
docker ps –l
查看停止的容器
docker ps -f status=exited
3.2.2 创建与启动容器#
创建容器常用的参数说明:
创建容器命令:docker run
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
(1)交互式方式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
docker run -it --namae=myCentos centos:7 /bin/bash
这时我们通过ps命令查看,发现可以看到启动的容器,状态为启动状态
退出当前容器
exit
(2)守护式方式创建容器:
docker run -di --name=容器名称 镜像名称:标签
docker run -di --name=myCentos2 centos:7
登录守护式容器方式:
docker exec -it 容器名称 (或者容器ID) /bin/bash
docker exec -it myCentos2 /bin/bash
3.2.3 停止与启动容器#
停止容器:
docker stop 容器名称(或者容器ID)
docker stop myCentos2(ID)
启动容器:
docker start 容器名称(或者容器ID)
docker start myCentos
3.2.4 文件拷贝#
如果我们需要将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
docker cp anaconda-ks.cfg myCentos2:/usr/local
也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
docker cp myCentos2:/usr/local/anaconda-ks.cfg anaconda-ks2.cfg
3.2.5 目录挂载#
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。
创建容器 添加-v参数 后边为 宿主机目录:容器目录,例如:
docker run -di --name:mycentos3-v /usr/local/myhtml:/usr/local/myhtml centos:7
docker run -id(-di) --name=myCentos3 -v /usr/local/myhtml:/usr/local/myhtml centos:7
如果你共享的是多级的目录,可能会出现权限不足的提示。
这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题
3.2.6 查看容器IP地址#
我们可以通过以下命令查看容器运行的各种数据
docker inspect 容器名称(容器ID)
docker inspect myCentos3
也可以直接执行下面的命令直接输出IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
docker inspect --format='{{.NetworkSettings.IPAddress}}' myCentos3
3.2.7 端口绑定#
此处以redis为例
docker run -dit --name=myRedis -p :6890:6379
此处的6890就是物理主机的端口,我们操作redis连接地址的端口就是6890,6379是容器的端口,因为redis默认端口为6379
3.2.8 删除容器#
删除指定的容器:
docker rm 容器名称(容器ID)
docker rm mycentos3 //删除容器是必须要保证该容器未运行
作者:BaldHead
出处:https://www.cnblogs.com/strict/p/14574560.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
推荐:文中如有错误欢迎指出,评论或者[ 邮箱 ]告诉我,感谢阅读!。
本文来自博客园,作者:BaldHead,转载请注明原文链接:https://www.cnblogs.com/strict/p/14574560.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析
2020-03-28 mybatis采坑之Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '?°?é?“é?“' in 'field list'