docker 入门学习

docker 入门学习,第1张

docker 入门学习 docker 入门学习

docker 拉取网站
Docker - Official Image | Docker Hub

1.安装docker

1.删除本机docker

yum remove docker*

2.下载yum运行时库

 sudo yum install -y yum-utils

3.设置下载源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4.下载docker

sudo yum install -y docker-ce  docker-ce-cli containerd.io

-y 参数 询问的选项都设置为yes,分别安装docker服务器,docker命令行,docker用到的动态链接文件

5.设置开机启动

systemctl enable docker --now

6.设置镜像加速
查找镜像加速源
阿里云服务器 ——> 容器镜像服务 ——> 镜像工具 ——> 镜像加速 ——> 选择centos

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://6nm7p6th.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

找镜像

hub.docker.com 

下载镜像

docker pull 软件名

常用命令

docker images #查看下载的镜像有哪些
docker ps #查看docker服务器上启动运行的软件
docker rmi 镜像Id #移除镜像
docker logs 镜像id  #查看镜像的日志
docker cp 已启动的镜像id:/etc/nginx/nginx.conf   /data/conf/nginx.conf   #把容器指定位置的东西复制出来,也可以把外面的东西复制到容器内部

启动容器

docker run 设置项  镜像名 #镜像启动运行的命令
docker run --name=mynginx -d  nginx 
--name 给启动的容器起个名称,便于区分  -d 让容器在后台运行
docker rm id/起的容器名称   #杀死进程  -f 该参数杀死正在运行的进程  先用docker ps -a 查看已经终止挂起的容器
docker stop id/起的容器名称  #停止以后台运行模式启动的容器,只是停止,在进程中仍然存在
docker start id/起的容器名称  #启动被停止的容器

运行机器重启后,运行的容器停止,可以在启动时加 --restart=always ,在机器重启后该容器自动启动
-p 端口映射 88:80 将88端口收到的访问请求转发到80端口

进入容器修改内容

(例:改变nginx的html文件)
1.用docker ps命令查询当前运行的容器的id

2.执行docker exec -it <容器id> /bin/bash 即可切换到对于该容器的 *** 作的虚拟机 (/bin/bash 是指当前命令窗口,若/bin/bash 不能用,尝试使用/bin/sh)

3.对容器进行 *** 作

4.exit 退出docker容器

提交改变

(将对于容器的修改保存起来,相当于保存了一份快照,类似于git提交)
docker commit [OPTIONS] ConTAINER [REPOSITORY[:TAG]]

1.执行命令

docker commit [option] <容器id> <给修改的容器起个别名>

Options:
-a, --author string Author (e.g., "John Hannibal ")
-c, --change list Apply Dockerfile instruction to the created image
-m, --message string Commit message
-p, --pause Pause container during commit (default true)

2.例:docker commit -a “wood” -m “首页变化” <容器id> wood-nginx:v1.0

3.docker rm 容器id #关闭启动的容器

4.用docker images 可以看到修改的容器

5.用docker run -d wood-nginx:v1.0 启动修改的容器

在新的机器上运行修改的容器 方法1:对镜像进行压缩,生成压缩包来保存镜像

1.docker save -o xxx.tar 提交的镜像名:版本tag

docker save -o wood-nginx.tar wood-nginx:v1.0

命令执行完成后,在执行命令的文件目录下生成镜像的压缩文件

2.传输到其他机器解压后启动镜像

docker load -i 镜像的压缩文件名
docker load -i wood-nginx.tar 

3.在目的机器执行docker images后可以看到解压缩的镜像名

方法2:将镜像推送到远程仓库

1.在hub.docker.com上注册账户,并建立属于自己的权限为公有的仓库

2.docker tag 修改的镜像名:版本tag 在仓库中的绝对路径:版本tag (改成仓库要求的名称格式)

docker tag wood-nginx:v1.0 wood/wood-nginx:v1.0

3.用docker images 可以看到多了一个以路径为名称的镜像名

4.在终端登录到远程仓库

docker login 

输入在网站上注册的用户和密码

5.将带路径前缀的镜像推送到远程仓库

docker push wood/wood-nginx:v1.0

6.退出登录

docker logout

7.在网站上查看推送的镜像

8.在另一台机器上运行docker pull +推送的镜像名 即可在其他机器上运行修改后的镜像
挂载数据到外部修改
为了不用在想要修改镜像时进入镜像运行的虚拟机,将虚拟机外的文件目录挂载到虚拟机的目录上,实现数据的外部修改
在常规的docker启动命令中添加 -v 参数进行挂载

docker run --name=mynginx -d  
--restart=always -p 80:88 -v /data/html:/usr/share/nginx/html:ro nginx

*这个文件的挂载相当于直接替换了虚拟机内部的文件路径,使用时要注意在挂载的路径中添加镜像所需文件后进行修改
*-v 可以添加多个 -v 参数来挂载多个文件
进行挂载后即可在主机对镜像进行修改

示例:部署redis

用自己编辑的redis.conf参数配置文件启动redis,并且将数据持久化到指定目录,分别挂载redis的参数配置文件和持久化目录
在redis的redis.conf配置文件中简单的写入appendonly yes来启动持久化进行测试

 docker run -v /root/test/redis/redis.conf:/etc/redis/redis.conf  
 -v /root/test/redis/data:/data  -d --name=myredis  
 -p 6379:6379 redis redis-server /etc/redis/redis.conf

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5619773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存