【docker实践】-docker-enter安装和使用dockerfile构造githug游戏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/langhailove_2008/article/details/86748611

【写在前面的话】–理论性的东西没什么可说的,网上看了很多,也学习了很多。这里主要记录一些自己学习之后的实践。

0、如何更方便的进入容器,推荐使用docker-enter,安装如下:

[root@XXXX1 githug_docker]# docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter
...(如果你的网速慢,可以直接去github搜索jpetazzo/nsenter)...

安装完成后,可以测试一下:

[root@XXXX1 githug_docker]# docker-enter 容器ID或容器名 即可进入正在运行的容器
# 比如:进入已经启动的githug容器,如下即可
[root@XXXX1 githug_docker]# docker ps 先找到已经启动的githug容器的Id或名称
[root@XXXX1 githug_docker]# docker-enter a7b7f66c164b
[root@a7b7f66c164b /]# cd git_hug/

1、首先准备好你的dockfile,内容如下:(没什么可说的)

[root@XXXX1 githug_docker]# ll
总用量 4
-rwxr-xr-x 1 root root 257 2月   1 19:56 Dockerfile
[root@XXXX1 githug_docker]# cat Dockerfile
FROM centos

MAINTAINER githug_wj

RUN yum update -y \
    && yum install -y git \
    && yum install -y vim \
    && yum install -y ruby \
    && yum install -y rubygems \
    && gem install githug \
    && mkdir /git_hug \
    && cd /git_hug

EXPOSE 8808

然后执行docker build构建你的镜像(也可以指定Dockerfile文件路径,默认.即使用当前目录下的Dockerfile文件)

[root@XXXX1 githug_docker]# docker build -t githug:wj .
...(构建的过程可能比较漫长,去和同事聊聊诗和远方吧)...
[root@XXXX1 githug_docker]# docker images #可以看到已经构建好的镜像
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
githug                             wj                  65687c3e6d7c        16 hours ago        412MB

2、githug镜像ok了,那就可以run个容器实例来玩耍了。

还不知道githug?[githug]可以帮你快速学习git命令。
说明:以游戏闯关的方式学习git命令

  • (1)手动执行“docker run -it git_hug:wj /bin/bash”就可以创建一个自己的git_hug容器;
  • (2)默认进入后"cd git_hug/"目录下执行命令"githug"即可开始;
  • (3)退出容器后怎么继续?
  • a.先"docker ps -a"找到自己的容器ID,最好用docker rename修改名字为自己的[比如:“docker rename 容器ID wangjie_playing_git”]。
  • b.然后执行命令"docker restart 容器ID"且"docker-enter 容器ID"即可继续玩。
[root@XXXX1 githug_docker]# docker run -it git_hug:wj /bin/bash
docker run -it githug:wj /bin/bash
[root@d203499b718f /]# cd git_hug/
[root@d203499b718f git_hug]# githug
********************************************************************************
*                                    Githug                                    *
********************************************************************************
Welcome to Githug!

Name: init
Level: 1
Difficulty: *

A new directory, `git_hug`, has been created; initialize an empty repository in it.
[root@a7b7f66c164b git_hug]# githug -h
Tasks:
  githug help [TASK]  # Describe available tasks or one specific task
  githug hint         # Get a hint for the current level
  githug levels       # List all of the levels
  githug play         # Initialize the game
  githug reset        # Reset the current level
  githug test         # Test a level from a file path

但是上面的run的容器退出后,容器就是exit的状态。再次进入需要重新docker start。然后docker-enter 进入即可,继续之前的githug关卡。当然,你也可以新开一个容器实例,从level1 开始。

[root@XXXX1 githug_docker]# docker ps -a #找到你之前的githug容器实例
[root@XXXX1 githug_docker]# docker start a7b7f66c164b(容器id)   即可
[root@XXXX1 githug_docker]# docker-enter a7b7f66c164b
[root@a7b7f66c164b /]# cd git_hug/
[root@a7b7f66c164b /]# githug   #输入githug命令即可愉快的玩耍了
...(关卡内容略)...

3、githug游戏网上有很多攻略–但是建议先自己动手操作,实在过不了的关卡,再去看关卡!

最后,祝你玩得愉快!

猜你喜欢

转载自blog.csdn.net/langhailove_2008/article/details/86748611