版权声明:本文为博主原创文章,未经博主允许不得转载。 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游戏网上有很多攻略–但是建议先自己动手操作,实在过不了的关卡,再去看关卡!
最后,祝你玩得愉快!