Ubuntu、Debian、ARM、x86-64では、パッケージ名やイメージが異なる場合があります。また、rootパスワードをコマンドラインへ直接書くと、履歴やプロセス一覧へ漏れる可能性があります。実運用ではSecretsやGitLabの初期設定を利用してください。
1. Dockerを準備する#
Ubuntuの例です。Dockerの公式インストール手順を、利用するディストリビューションに合わせて確認してください。
sudo apt update
sudo apt install ca-certificates curlsudo systemctl status docker
docker version2. GitLabの永続ディレクトリを作成する#
sudo mkdir -p /srv/gitlab/config /srv/gitlab/logs /srv/gitlab/data3. GitLabコンテナを起動する#
利用するCPUアーキテクチャーに対応した公式または信頼できるイメージを選びます。イメージ名は、実際のGitLab公式ドキュメントに合わせて変更してください。
export GITLAB_HOSTNAME='gitlab.example.com'
export GITLAB_ROOT_PASSWORD='set-this-outside-the-command-history'sudo docker run --detach \
--hostname "$GITLAB_HOSTNAME" \
--publish 80:80 \
--publish 443:443 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
--env GITLAB_ROOT_PASSWORD="$GITLAB_ROOT_PASSWORD" \
gitlab/gitlab-ce:latestSSHポートをGitLabコンテナへ公開する場合は、ホスト側の22番ポートと競合しない番号を選びます。GitLabのSSHクローン用ポートと、ホストの管理用SSHポートを混同しないでください。
4. 起動状態を確認する#
docker ps -a
docker logs -f gitlab
ss -ltnp | grep -E ':80|:443|:22'GitLabの初回起動には時間がかかります。コンテナが起動していても、内部サービスの初期化が完了するまでWeb画面が利用できないことがあります。
5. コンテナを再作成する場合#
まず設定とデータのバックアップを確認します。コンテナだけを削除しても、/srv/gitlabの永続データは残ります。
docker stop gitlab
docker rm gitlab同じボリュームを使って新しいコンテナを起動すれば、設定とリポジトリデータを引き継げます。docker volume pruneや再帰的な削除を実行する前には、対象パスを必ず確認してください。
まとめ#
- OSとCPUアーキテクチャーに合ったDockerとGitLabイメージを選ぶ。
/etc/gitlab、/var/log/gitlab、/var/opt/gitlabを永続化する。- ホストのポート競合を確認する。
- rootパスワードやトークンをMarkdown、シェル履歴、Gitへ残さない。
- 本番ではタグを固定し、バックアップとアップグレード手順を準備する。


