一、安装Docker
Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费),EE 即企业版,强调安全,付费使用。Docker CE 分为 stable 、test 和 nightly 三个更新频道。
我们可以在CentOS、Ubuntu、Windows,MacOS上安装,但是市场上基本都是选择
二、CentOS安装Docker
Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。
所以必须要是CentOS7,低于这个版本就会出问题!!!
1. 卸载(可选)
如果之前安装过旧版本的Docker,可以使用下面命令卸载:
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-selinux
docker-engine-selinux
docker-engine
docker-ce
2. 安装yum工具
首先需要大家虚拟机联网,安装yum工具
yum install -y yum-utils
device-mapper-persistent-data
lvm2 --skip-broken
3. 更新本地镜像源
默认是用阿里云的镜像
# 设置docker镜像源
yum-config-manager
--add-repo
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
4. 安装docker
可能会比较久,所以必定要先执行第3步,有了镜像可以快许多!
yum install -y docker-ce
这样子docker就已经安装好了!!!
5. 注意事项 关闭防火墙(重大!!!)
Docker应用需要用到各种端口,逐一去修改防火墙设置。超级麻烦,因此提议大家直接关闭防火墙!
启动docker前,必定要关闭防火墙后!!
# 关闭
sudo systemctl stop firewalld
# 禁止开机启动防火墙
sudo systemctl disable firewalld
查看防火墙的状态(确保是不是真的关闭了!)
如下图:
显示 Active: inactive (dead) 表明关闭了!
三、Docker的使用
1. 通过命令启动docker
# 启动docker服务
sudo systemctl start docker
# 停止docker服务
systemctl stop docker
# 重启docker服务
sudo systemctl restart docker
2. 输入命令,可以查看docker版本
用来判断docker
docker -v
3. 配置镜像加速
docker官方镜像仓库网速较差(就像我们去访问github一样),我们需要设置国内镜像服务,首推阿里云!
页面如下图所示
完整docker镜像加速配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://9bugzlv8.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
四、Docker最新超详细教程——Docker的基本操作
1、镜像命令
docker镜像操作的命令无非就是CRUD。
常见的镜像操作命令如下所示:
docker build
docker push
docker pull
docker images
docker rmi
docker save
docker load
在本地获取镜像有两种方法:
(1)docker build:可以从本地获取,通过DockerFile的文件,将其构建成一个镜像
(2)docker pull:从服务器中拉取一个镜像(常用!)
想知道本地镜像的情况:
(1)docker images:查看镜像
(2)docker rmi:删除不需要的镜像
想把镜像分享给本人:
(1)docker push:将其上传到镜像服务器,可供本人拉去
(2)docker save、docker load:先将其打成压缩包,发送出去,再将压缩包加载为镜像
命令许多,不必定全都可以记住,但是我们可以使用help命令查看。
如果想看具体哪一个命令的参数有什么
docker images --help
案例一:拉取、查看镜像
我们可以先登入DockerHub,搜索想要拉取的镜像(以nginx为例)
先在Centos上启动Docker
sudo systemctl start docker
再执行pull拉取命令
sudo docker pull nginx
运行结果如下
查看刚刚拉取下来的镜像信息
sudo docker images
2、容器操作
我们在之前的章节中提到了容器这一概念,想必大家都知道了容器与镜像的异同,我们在这里就不赘述了。
容器相关命令
- docker run:创建并运行一个容器,处于运行状态
- docker pause:让一个运行的容器暂停
- docker unpause:让一个容器从暂停状态恢复运行
- docker stop:停止一个运行的容器
- docker start:让一个停止的容器再次运行
- docker rm:删除一个容器
- docker exec:进入容器执行命令
- docker logs:查看容器的运行日志
- docker ps:查看所有的容器和运行状态
容器三个状态
运行:进程正常运行
暂停:进程暂停,CPU不再运行,并不释放内存
停止:进程终止,回收进程占用的内存、CPU等资源
暂停与停止有什么差别?
两者的差别在于操作系统层面!
如果容器处于暂停状态,操作系统会将容器中的进程挂起,容器关联的内存暂存下来,CPU不再执行这个进程;如果我们将其恢复,进程就会直接运行,内存空间恢复,程序继续运行。
如果容器处于停止状态,操作系统会将容器中的进程“杀死”,容器关联的内存回收下来,只有文件系统会被保留下来。如果我们还需要,只能重新start一个新的进程(容器),可以形象的理解为“投胎”。
案例一:创建并运行一个容器(nginx)
需求:创建并运行nginx容器的命令
docker run --name containerName -p 80:80 -d nginx
由于该命令比较复杂,我们可以通过查看DockerHub来创建:Nginx – 官方图片|Docker Hub
我们可以用官网描述的这个方式来创建
命令解读
默认情况下容器是隔离环境,我们直接访问宿主机的80端口,肯定访问不到容器中的ngin。
容器是对外隔离的,任何请求来访问容器都会被拒绝, 所以我们这边将容器与主机的端口做映射,用户通过访问主机的端口来间接访问容器。
详细步骤
(1)创建一个名为 nginxname 的容器
首先我们已经有了nginx的镜像(没有的话先创建…)
docker run --name nginxname -p 80:80 -d nginx
容器名为 nginxname ,端口映射为80:80,镜像名称为nginx
(2)访问nginx容器
然后我们就可以通过 IP + 端口 的方式访问
(3)查看日志
使用 docker logs nginxname(容器名)查看日志
由于我们刚刚有对nginx进行访问,所以这里就会有GET请求的日志。
案例二:进入容器,修改文件
需求:进入Nginx容器,修改HTML文件内容,添加“你好 Harmony3.0”
命令解读
docker exec -it mn bash
docker exec :进入容器内部,执行一个命令
-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
mn :要进入的容器的名称
bash:进入容器后执行的命令,bash是一个linux终端交互命令
停止容器stop && 查看容器ps
学习完上面的两个案例,Docker的命令大体都了解了,但是还有几个在上面的案例中没有用到,我们目前就在来演示一下!
我们先将之间创建的名为nginxname容器停止
docker stop nginxname
此时如果我们只是使用docker ps不加参数的话是查看不到该容器的!
可以看看 docker ps –help 中的面描述
我们要加上 -a 这个参数就可以看到刚刚停止的容器了!!!
docker ps -a
删除容器rm
(我们先将stop的容器启动),直接使用rm删除,可以发现失败了
通过查看,想要加上参数 -f 表明强制执行!
docker rm -f nginxname
或者在nginxname处于 stop状态 的时候,可以直接 rm 掉!!!
小结
我们就算用docker完成了安装和部署,以及docker的一些详细操作,还有许多有意思的东西,列如docker compose编排微服务,kubernetes容器编排等等,下期给大家介绍,希望大家多多关注,谢谢。
- 最新
- 最热
只看作者