Attention ceci est mon brouillon avant de faire une belle documentation sur Docker (il y a à boire et à manger).
Maintenant je vais faire un test avec GitHub : https://github.com . D’abord il faut créer un compte farias06 :
Ensuite on fait un projet, pour la part c’est hello_world :
Et maintenant il va falloir mettre les sources :
Sur le serveur on installe git :
[root@localhost ~]# yum install git
Modules complémentaires chargés : ulninfo
dockerrepo | 2.9 kB 00:00:00
ol7_UEKR3 | 1.2 kB 00:00:00
ol7_UEKR4 | 1.2 kB 00:00:00
ol7_latest | 1.4 kB 00:00:00
(1/4): ol7_UEKR4/x86_64/updateinfo | 14 kB 00:00:00
(2/4): ol7_UEKR4/x86_64/primary | 2.5 MB 00:00:04
(3/4): ol7_latest/x86_64/updateinfo | 816 kB 00:00:05
(4/4): ol7_latest/x86_64/primary | 16 MB 00:00:24
ol7_UEKR4 77/77
ol7_latest 14274/14274
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet git.x86_64 0:1.8.3.1-6.el7_2.1 sera installé
...
Installé :
git.x86_64 0:1.8.3.1-6.el7_2.1
Dépendances installées :
libgnome-keyring.x86_64 0:3.8.0-3.el7 perl.x86_64 4:5.16.3-286.el7 perl-Carp.noarch 0:1.26-244.el7
perl-Encode.x86_64 0:2.51-7.el7 perl-Error.noarch 1:0.17020-2.el7 perl-Exporter.noarch 0:5.68-3.el7
perl-File-Path.noarch 0:2.09-2.el7 perl-File-Temp.noarch 0:0.23.01-3.el7 perl-Filter.x86_64 0:1.49-3.el7
perl-Getopt-Long.noarch 0:2.40-2.el7 perl-Git.noarch 0:1.8.3.1-6.el7_2.1 perl-HTTP-Tiny.noarch 0:0.033-3.el7
perl-PathTools.x86_64 0:3.40-5.el7 perl-Pod-Escapes.noarch 1:1.04-286.el7 perl-Pod-Perldoc.noarch 0:3.20-4.el7
perl-Pod-Simple.noarch 1:3.28-4.el7 perl-Pod-Usage.noarch 0:1.63-3.el7 perl-Scalar-List-Utils.x86_64 0:1.27-248.el7
perl-Socket.x86_64 0:2.010-3.el7 perl-Storable.x86_64 0:2.45-3.el7 perl-TermReadKey.x86_64 0:2.30-20.el7
perl-Text-ParseWords.noarch 0:3.29-4.el7 perl-Time-HiRes.x86_64 4:1.9725-3.el7 perl-Time-Local.noarch 0:1.2300-2.el7
perl-constant.noarch 0:1.27-2.el7 perl-libs.x86_64 4:5.16.3-286.el7 perl-macros.x86_64 4:5.16.3-286.el7
perl-parent.noarch 1:0.225-244.el7 perl-podlators.noarch 0:2.5.1-3.el7 perl-threads.x86_64 0:1.87-4.el7
perl-threads-shared.x86_64 0:1.43-6.el7 rsync.x86_64 0:3.0.9-17.el7
Terminé !
[root@localhost ~]# mkdir git
[root@localhost ~]# cd git/
[root@localhost git]# git init
Initialized empty Git repository in /root/git/.git/
[root@localhost git]# echo "# hello_world" >> README.md
[root@localhost git]# git add README.md
[root@localhost git]# git commit -m "first commit"
[master (root-commit) 666b78d] first commit
Committer: root <root@localhost.localdomain>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
git config --global user.name "Your Name"
git config --global user.email you@example.com
After doing this, you may fix the identity used for this commit with:
git commit --amend --reset-author
1 file changed, 1 insertion(+)
create mode 100644 README.md
[root@localhost git]# git remote add origin https://github.com/farias06/hello_world.git
[root@localhost git]# git push -u origin master
Username for 'https://github.com': farias06
Password for 'https://farias06@github.com':
Counting objects: 3, done.
Writing objects: 100% (3/3), 221 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/farias06/hello_world.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
[root@localhost git]# git config --global user.name "ARIAS Frederic"
[root@localhost git]# git add server8.c
[root@localhost git]# git commit -m "My Server"
[root@localhost git]# git push -u origin master
Username for 'https://github.com': farias06
Password for 'https://farias06@github.com':
Counting objects: 4, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 4.08 KiB | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/farias06/hello_world.git
666b78d..0ad8bd2 master -> master
Branch master set up to track remote branch master from origin.
Et maintenant on regarde sur l’interface si le source est disponible :
Mon source est maintenant accessible du monde entier : hello_world/server8.c (https://github.com/farias06/hello_world/blob/master/server8.c). Le début de la célébrité 😉 .
Sinon on peut rester avec son SVN, voir même son CVS. Quel est le rapport entre GITHUB et Docker ? Le rapport c’est « Automated Build » (construction automatique) !
La seconde étape est donc la création d’un compte sur https://hub.docker.com/register/ .
La prochaine étape c’est le push de l’image, et ensuite c’est la construction automatique.
[root@localhost git]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: farias06
Password:
Login Succeeded
[root@localhost git]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dc75f255cd90 my-server7 "/sbin/server8" 2 hours ago Up 2 hours 0.0.0.0:8087->80/tcp my-server7-2
1f84fca3adf1 my-server7 "/sbin/server8" 2 hours ago Up 2 hours 0.0.0.0:8086->80/tcp my-server7-1
51b94f30c07e my-haproxy-v15 "/docker-entrypoint.s" 7 hours ago Up 2 hours 0.0.0.0:80->80/tcp mon-haproxy-v15c
2fc533c55725 postgres "/docker-entrypoint.s" 46 hours ago Up 46 hours 0.0.0.0:5432->5432/tcp postgres2
[root@localhost git]# docker commit -m "Added server8" -a "ARIAS Frederic" dc75f255cd90 farias06/hello_docker
sha256:ac157ca4e8b0e475960a4e07c8711a850a9fd69ffc5e209dcd096a51d4e0d809
[root@localhost git]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 44776f55294a Less than a second ago 120.1 MB
farias06/hello_docker latest ac157ca4e8b0 2 minutes ago 367.4 MB
my-server7 latest 2dbb7ecbdaa1 4 hours ago 367.4 MB
b3b4e7faef2f 11 hours ago 367.4 MB
Oups j’ai du oublier de mettre la version ..
[root@localhost git]# docker commit -m "Added server8" -a "ARIAS Frederic" dc75f255cd90 farias06/hello_docker:v1
sha256:84198751afa71e272d561ea6a812bc7dec697f5663f0fa5047d7589118e6d6ab
[root@localhost git]# docker search farias06
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
[root@localhost git]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 44776f55294a Less than a second ago 120.1 MB
farias06/hello_docker v1 84198751afa7 About a minute ago 367.4 MB
...
[root@localhost git]# docker push farias06/hello_docker
The push refers to a repository [docker.io/farias06/hello_docker]
678521444a2e: Pushed
a6cb83a08571: Pushed
3bf1eecb904c: Pushed
4f9e31a2233f: Pushed
5f70bf18a086: Mounted from library/haproxy
latest: digest: sha256:aaa7bf86b55ebd72b44f9d4b8141c18dc1f38fcb7c5b9748d165a3981cff083b size: 4834
678521444a2e: Layer already exists
a6cb83a08571: Layer already exists
3bf1eecb904c: Layer already exists
4f9e31a2233f: Layer already exists
5f70bf18a086: Layer already exists
v1: digest: sha256:d91b2bfa33c6579b2a38a6504b836829edd753466da497f425be6e6af9e15a1f size: 4830
[root@localhost git]# docker search farias06
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
farias06/hello_docker Hello Docker 1
Si je regarde l’interface de Docker, j’ai bien la version v1 et la dernière version .
Maintenant le monde entier peut avoir accès à mon image via : docker pull farias06/hello_docker
A noter que l’interface Docker permet de faire de PUSH, et donc de déclencher des actions sur d’autres sites.
J’aime ça :
J’aime chargement…