云盘算实训36——mysql镜像管理、同步容器和宿主机时间、在容器外执行容器 ...

打印 上一主题 下一主题

主题 1628|帖子 1628|积分 4884

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、线上考试系统的数据虚拟化技术摆设

1.摆设前段服务器

步调一:将资源上传到服务器
   将dist.zip上传给服务器  
  下载unzip的包
yum -y install unzip
解压
   unzip dist.zip 
  
步调二:创建底子容器在服务器上
启动服务
   systemctl start docker.service
  拉取镜像
   docker pull centos docker run -it --name c0 centos:latest /bin/bash
  步调三:在容器中修改yum源
   curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault8.5.2111.repo yum clean all && yum makecache
  步调四:在容器中安装epel
   yum -y install epel-release
  步调五:在容器中安装nginx
   yum -y install nginx
  步调六:退出
   ctrl p+q
  步调七:导出tar包
   docker export -o centos_nginx.tar
  步调八:引⼊tar包,称为镜像
   docker import -m "维护天下和平" centos_nginx.tar centos:nginx
  步调九:查看镜像
   docker image ls
  
  docker images
  
  REPOSITORY   TAG       IMAGE ID               CREATED        SIZE
centos               nginx     1c2a0901c77a         2 hours ago      368MB
centos               httpd      e9a1ee725b43        3 days ago        311MB
centos               yum       82ca12d9b058         3 days ago        261MB
centos               latest     5d0da3dc9764         2 years ago       31MB
  步调十:停⽤c0容器,删除c0容器
步调十一:创建新的centos nginx容器,在创建的同时指定端⼝,以及挂载⽬录
   docker run -it --name c0 -p80:80/tcp -v /opt/:/usr/share/nginx/html centos:nginx /bin/bash
  步调十二:在容器内部启动nginx服务
   nginx
  #退出
   ctrl p +q
  步调十三:在宿主上把dist⽬录中的⽂件复制opt⽬录中
   cp -r dist/* /opt
  2.启动docker保卫进程

   systemctl start docker.service
  3.搜索mysql镜像

   docker search mysql
  4.拉取mysql镜像

拉取镜像
   docker pull mysql
  查看镜像
   docker images
  
  REPOSITORY   TAG       IMAGE ID               CREATED               SIZE
centos               nginx     1c2a0901c77a         2 hours ago           368MB
centos               httpd      e9a1ee725b43        3 days ago            311MB
centos               yum       82ca12d9b058         3 days ago            261MB
mysql                latest     a82a8f162e18          4 weeks ago          586MB
centos               latest     5d0da3dc9764         2 years ago           231MB
  5.创建镜像容器

  1. docker run -d --name my01 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:latest
  2. # -d 后台运⾏,并输出hashcode
  3. # -e MYSQL_ROOT_PASSWORD=root 设置mysql密码
  4. # -p 映射3306端⼝
复制代码
6.管理mysql

   docker exec -it my01 mysql -uroot -proot
  7.欣赏器访问

192.168.1.32


二、让容器时间和宿主机时间⼀致

让容器共享宿主的/etc/localtime
   [root@docker001 ~]# docker run -it --name c0 centos:nginx /bin/bash
  查看日期
   [root@6caf88cce814 /]# date
  Sat Aug 24 13:36:54 UTC 2024
    [root@docker001 ~]# docker run -it --name c1 -v /etc/localtime:/etc/localtime centos:nginx /bin/bash
  [root@f01eb51c8a59 /]# date
  Sat Aug 24 21:38:29 CST 2024
    [root@docker001 ~]# docker exec c0 date
  Sat Aug 24 13:40:14 UTC 2024
  [root@docker001 ~]# docker exec c1 date
  Sat Aug 24 21:40:19 CST 2024
  三、在容器外执行容器内的下令

# 容器内部已经安装的指令⽅可执⾏,否则⽆法执⾏
   [root@docker001 ~]# docker exec c0 ifconfig
  OCI runtime exec failed: exec failed: unable to
  start container process: exec: "ifconfig": executable file not found in $PATH: unknown [root@docker001 ~]# docker exec c0 ls /
  bin dev etc home lib lib64 lost+found media
  四、容器的ip地址不稳固题目

docker容器的ip地址是不固定,假如要作为服务器使⽤,就必须能够直接访问服务,不能直接使⽤ip,为容器设置域名,做端⼝映射也能保证,确定是⼀旦停⽤之后端⼝被占⽤,就⽆法再次启动,此时则需要做link
语法:
docker run --link. 容器的名称或者是id:⾃定义域名
注:被link容器必须处于启动状态,否则当前容器⽆法启动

--link 容器名:别名
   [root@docker001 ~]# docker run -it --name c0 centos:nginx /bin/bash
  [root@docker001 ~]# docker run -it --link c0:mysqldb --name c1 centos:nginx /bin/bash
  [root@ba46c0e4055d /]# ping mysqldb 
  PING mysqldb (172.17.0.2) 56(84) bytes of data.
  64 bytes from mysqldb (172.17.0.2): icmp_seq=1 ttl=64 time=0.057 ms
  64 bytes from mysqldb (172.17.0.2): icmp_seq=2 ttl=64 time=0.044 ms
  64 bytes from mysqldb (172.17.0.2): icmp_seq=3 ttl=64 time=0.039 ms
  测试
# 停息服务
   [root@docker001 ~]# docker stop c0 c1
  c0
  c1
  # 先启动主动依靠容器
   [root@docker001 ~]# docker start c1
  # ⽆法启动,提示被link的容器没有启动
   Error response from daemon: Cannot link to a non running container: /c0 AS /c1/mysqldb Error: failed to start containers: c1
  # 先启动被依靠的容器
   [root@docker001 ~]# docker start c0
  c0
  # 在启动主动依靠的容器
   [root@docker001 ~]# docker start c1
  c1
  测试 使⽤⼀个容器占⽤172.17.0.2,测试
# 停⽤容器
   [root@docker001 ~]# docker stop c0 c1
  c0
  c1
  # 创建新容器 占⽤172.17.02
   [root@docker001 ~]# docker run -it --name c2 centos:nginx /bin/bash
  # 启动 c0 c1
   [root@docker001 ~]# docker start c0 c1
  c0
  c1
  # 在c1容器ping别名
   [root@docker001 ~]# docker exec c1 ping mysqldb
  PING mysqldb (172.17.0.3) 56(84) bytes of data.
  64 bytes from mysqldb (172.17.0.3): icmp_seq=1 ttl=64 time=0.157 ms
  64 bytes from mysqldb (172.17.0.3): icmp_seq=2 ttl=64 time=0.037 ms
  64 bytes from mysqldb (172.17.0.3): icmp_seq=3 ttl=64 time=0.056 ms
  每次启动都修改了/ets/hosts⽂件
   [root@docker001 ~]# docker exec c1 cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.3 mysqldb 20f05670b7df c0
172.17.0.4 ba46c0e4055d
  五、底子镜像的制作

1.进程⽬录
   ls /proc/
  2.sys⽬录是内核⽂件保存位置,不允许修改

3.排除以上2个⽬录,并且将⽤户设置为数字
   [root@docker001 sys]# tar --numeric-owner -- exclude=/proc --exclude=/sys -cvf centos7.tar /
  4.将项⽬移动到dockerserver主机上
   scp centos.tar root@192.168.1.132:~
  5.查看tar包
   [root@docker001 ~]# ls
  anaconda-ks.cfg centos7.tar centos_java17 frp initserver.sh jdk-17_linux-x64_bin.tar.gz
  5.加载镜像
   [root@docker001 ~]# docker import -m "冬冬最棒!" centos7.tar me:me00
  6.查看镜像
   [root@docker001 ~]# docker images
  REPOSITORY     TAG       IMAGE ID               CREATED                 SIZE
  me                       me00      64abc01ff8c4           3 minutes ago         2.55GB
  centos                 nginx      12fea1b890de          24 hours ago           366MB
  centos                 java17     b6bf774de7bb         24 hours ago           550MB
  centos_httpd        v0           fffc96d791d5           2 days ago              309MB
  centos_yum          v0         191d9c84f461          2 days ago              260MB
  mysql                 latest       a82a8f162e18          4 weeks ago            586MB
  centos                latest       5d0da3dc9764         2 years ago             231MB
  7.创建容器
   [root@docker001 ~]# docker run -it --name c00 me:me00 /bin/bash
  查看
  [root@4199382c490f /]# ls
  bin   dev home lib64 mnt proc run   srv tmp var boot etc lib   media opt root sbin sys usr 
  六、应用镜像

1.根据底子镜像创建容器
   docker run -it --name c0 centos_yum:v0 /bin/bash
  2.安装应⽤
   yum -y install httpd
  3.退出
   ctrl p + q
  4.利用commit应用镜像
   [root@docker001 ~]# docker commit c0 centos:httpd
  查看镜像
   [root@docker001 ~]# docker images
  REPOSITORY     TAG       IMAGE ID               CREATED          SIZE
  centos                 httpd       bbf5ed97db84        3 minutes ago    340MB
  



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

民工心事

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表