---
title: "Docker : le seizième pas."
url: https://www.cyber-neurones.org/2016/05/docker-le-seizieme-pas/
date: 2016-05-02
modified: 2017-09-06
lang: fr
author: "Frederic"
description: "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..."
categories:
  - "Docker"
tags:
  - "Docker"
  - "Github"
word_count: 870
---

# Docker : le seizième pas.

**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](https://github.com) . D'abord il faut créer un compte **farias06** :

[![Capture d’écran 2016-05-02 à 15.58.48](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-15.58.48.png)](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-15.58.48.png)

Ensuite on fait un projet, pour la part c'est **hello_world** :

[![Capture d’écran 2016-05-02 à 16.01.07](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-16.01.07.png)](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-16.01.07.png)

Et maintenant il va falloir mettre les sources :

[![Capture d’écran 2016-05-02 à 16.01.34](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-16.01.34.png)](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-16.01.34.png)

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 :

[![Capture d’écran 2016-05-02 à 16.24.43](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-16.24.43.png)](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-16.24.43.png)

Mon source est maintenant accessible du monde entier : hello_world/server8.c ([https://github.com/farias06/hello_world/blob/master/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/](https://hub.docker.com/register/) .

[![Capture d’écran 2016-05-02 à 16.50.42](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-16.50.42.png)](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-16.50.42.png) [![Capture d’écran 2016-05-02 à 16.51.07](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-16.51.07.png)](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-16.51.07.png) [![Capture d’écran 2016-05-02 à 16.52.55](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-16.52.55-1024x561.png)](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-16.52.55.png)

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 .

[![Capture d’écran 2016-05-02 à 17.24.01](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-17.24.01-1024x402.png)](https://www.cyber-neurones.org/wp-content/uploads/2016/05/cyber-neurones_capture-d’ecran-2016-05-02-a-17.24.01.png)

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.