Docker入門

Dockerの開発環境をローカル環境に構築する手順や、 Docker を使ったプログラムの記述方法や実行までをサンプルを使いながら順に学習していきます。

Docker oneliner集

Dockerでよく使うOnelinerコマンド集

以下のコマンドは一度実行しておくことをお勧めする。

実行した後はshellのhistoryに登録されるので、Ctrl+Rで実行したいコマンドをさかのぼることで楽に実行できる。

Dockerのボリュームをまとめて消すコマンド

コンテナのボリュームをすべて消したかったらこのコマンドです。

docker rm -v $(docker ps -q)

一度実行した後はCtrl+Rで履歴を開きdocker rm -で再度実行できるはず。

サンプル実行結果

PS C:\Users\mineg\myworking> docker rm -v $(docker ps -q -f status=exited)
7435062f254c
6f16b42bdc4f
c29b1c16b4a7
ac59d05e5375
74b46930de22

Dockerのコンテナをすべてストップする

dockerのコンテナをストップするにはstopコマンドを使います。

docker stop $(docker ps -q)

こちらも一度実行した後はCtrl+Rで履歴を開きdocker stoぐらいで履歴に再度表示されるはず。

Dockerのイメージをすべて消す

docker rmi $(docker images -q)

一度実行した後はCtrl+Rで履歴を開きdocker rmi+Enterで実行できます

サンプル実行結果。

いつも実行しているコマンド

docker stop $(docker ps -q) | docker rmi $(docker images -q)

Dockerによるpythonワンライナー環境構築

Dockerfileでpythonを実行したいとき

カレントディレクトリにあるmain.pyを実行したい

例えば以下のようにhelloworldと書かれたmain.pyがあるとき

$PSDefaultParameterValues['*:Encoding'] = 'utf8'
echo "print('hello world')" > main.py

以下のようにdockerのrunコマンドのオプションを駆使することでDockerfileもコンテナも残さずにコマンドを実行することができます

docker run --rm -v  ${pwd}:/app -w /app python:3-slim python main.py

一行で終わるpythonのコマンドをDockerで実行したい

main.pyを作ることすら面倒な場合もありますね。

その場合はpythonの-cオプションを使用することでpythonのファイルすら残さずにpythonのコードを実行することがができます。

docker run -it --rm python:3-slim python -c "print('hello world')"

コピペで始めるDockerアプリ一覧

この記事はOSSプロジェクトの一環で、コピペでDockerアプリを立ち上げるシェルスクリプトを集めてます。

まだまだ途中のコードなのでご協力いただける方は本Qiitaに編集リクエストを提出するか、以下のリポジトリにプルリクエストの提出をお願いします。

https://github.com/new-awesomedocker/awesomedocker/blob/main/Readme.jp.md

CDN

nginx

git clone https://github.com/new-awesomedocker/awesomedocker.git
cd awesomedocker/nginx
docker-compose up

and see http://localhost

webAPP

React

https://docker.hatenablog.jp/entry/2023/05/18/213054

flask

git clone https://github.com/new-awesomedocker/awesomedocker.git
cd awesomedocker/flask/
docker image build -t flask .
docker run -it -p 80:80 -v ./code:/code flask bash

python main.py

ブラウザから http://localhost/

にアクセスしてみてください。

django

git clone https://github.com/new-awesomedocker/awesomedocker.git
cd awesomedocker/django/
docker image build -t django .
docker run -it -p 80:80 -v ./code:/code django bash

and python mysite/manage.py runserver 0.0.0.0:80

access to http://localhost/

web system

knowledge

git clone https://github.com/new-awesomedocker/awesomedocker.git
cd awesomedocker/knowledge
docker-compose up

access to http://localhost/:8080

プログラミング開発環境

commonlisp

git clone https://github.com/new-awesomedocker/awesomedocker.git
cd awesomedocker/commonlisp
docker-compose build
docker-compose run --rm lisp_sh sbcl

python

git clone https://github.com/new-awesomedocker/awesomedocker.git
cd awesomedocker/pythonconsole/
docker image build -t pythonconsole .
docker run -it -v ./code:/code pythonconsole bash

Dockerエラー: this error may indicate that the docker daemon is not running

error during connect: this error may indicate that the docker daemon is not running: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.project%3Ddocker-redmine%22%3Atrue%7D%7D": open //./pipe/docker_engine: The system cannot find the file specified.

対応

docker engineを起動しましょう。

Knowledgeのエラー「org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl」

対応方法

  • もう一度再起動する
  • あるいは以下のdocker-composeファイルに書き換える

github.com

エラー詳細

PS C:\Users\mineg\myworking\0000dev>  git clone https://github.com/support-project/docker-knowledge.git
Cloning into 'docker-knowledge'...
remote: Enumerating objects: 325, done.
Receiving objects: 100% (325/325), 38.70 KiB | 19.35 MiB/s, done.
remote: Total 325 (delta 0), reused 0 (delta 0), pack-reused 325
Resolving deltas: 100% (108/108), done.
PS C:\Users\mineg\myworking\0000dev> ls


    ディレクトリ: C:\Users\mineg\myworking\0000dev


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2023/05/19     15:40                awsomedocker
d-----        2023/05/19     15:38                cl
d-----        2023/05/22     10:39                docker-knowledge
d-----        2023/05/18     10:12                elephant_in_the_refrigerator


PS C:\Users\mineg\myworking\0000dev> cd .\docker-knowledge\
PS C:\Users\mineg\myworking\0000dev\docker-knowledge> ls


    ディレクトリ: C:\Users\mineg\myworking\0000dev\docker-knowledge


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2023/05/22     10:39                volumes
-a----        2023/05/22     10:39             97 .gitignore
-a----        2023/05/22     10:39            625 docker-compose.yml
-a----        2023/05/22     10:39            536 Dockerfile
-a----        2023/05/22     10:39            863 README.md


PS C:\Users\mineg\myworking\0000dev\docker-knowledge> docker-compose up
[+] Running 2/0
 ✔ Container docker-knowledge-db-1   Created                                                                       0.0s
 ✔ Container docker-knowledge-app-1  Created                                                                       0.0s
Attaching to docker-knowledge-app-1, docker-knowledge-db-1
docker-knowledge-db-1   | The files belonging to this database system will be owned by user "postgres".
docker-knowledge-db-1   | This user must also own the server process.
docker-knowledge-db-1   |
docker-knowledge-db-1   | The database cluster will be initialized with locale "en_US.utf8".
docker-knowledge-db-1   | The default database encoding has accordingly been set to "UTF8".
docker-knowledge-db-1   | The default text search configuration will be set to "english".
docker-knowledge-db-1   |
docker-knowledge-db-1   | Data page checksums are disabled.
docker-knowledge-db-1   |
docker-knowledge-db-1   | fixing permissions on existing directory /var/lib/postgresql/data ... ok
docker-knowledge-db-1   | creating subdirectories ... ok
docker-knowledge-db-1   | selecting default max_connections ... 100
docker-knowledge-db-1   | selecting default shared_buffers ... 128MB
docker-knowledge-db-1   | selecting default timezone ... Etc/UTC
docker-knowledge-db-1   | selecting dynamic shared memory implementation ... posix
docker-knowledge-db-1   | creating configuration files ... ok
docker-knowledge-app-1  | 22-May-2023 01:40:22.688 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.5.32
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Jun 20 2018 19:50:35 UTC
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.5.32.0
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            5.15.90.1-microsoft-standard-WSL2
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/lib/jvm/java-8-openjdk-amd64/jre
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.8.0_171-8u171-b11-1~deb9u1-b11
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
docker-knowledge-app-1  | 22-May-2023 01:40:22.689 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
docker-knowledge-app-1  | 22-May-2023 01:40:22.690 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
docker-knowledge-app-1  | 22-May-2023 01:40:22.690 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
docker-knowledge-app-1  | 22-May-2023 01:40:22.690 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
docker-knowledge-app-1  | 22-May-2023 01:40:22.690 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
docker-knowledge-app-1  | 22-May-2023 01:40:22.690 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
docker-knowledge-app-1  | 22-May-2023 01:40:22.690 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
docker-knowledge-app-1  | 22-May-2023 01:40:22.690 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.17] using APR version [1.5.2].
docker-knowledge-app-1  | 22-May-2023 01:40:22.690 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
docker-knowledge-app-1  | 22-May-2023 01:40:22.690 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
docker-knowledge-app-1  | 22-May-2023 01:40:22.692 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.0f  25 May 2017]
docker-knowledge-app-1  | 22-May-2023 01:40:22.730 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
docker-knowledge-app-1  | 22-May-2023 01:40:22.735 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
docker-knowledge-app-1  | 22-May-2023 01:40:22.738 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
docker-knowledge-app-1  | 22-May-2023 01:40:22.739 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
docker-knowledge-app-1  | 22-May-2023 01:40:22.740 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 220 ms
docker-knowledge-app-1  | 22-May-2023 01:40:22.751 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
docker-knowledge-app-1  | 22-May-2023 01:40:22.751 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.32
docker-knowledge-app-1  | 22-May-2023 01:40:22.766 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
docker-knowledge-db-1   | running bootstrap script ... ok
docker-knowledge-app-1  | 22-May-2023 01:40:27.843 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
docker-knowledge-app-1  | Env [KNOWLEDGE_HOME] was not found.
docker-knowledge-app-1  |  INFO 2023-05-22 01:40:28,045 GlobalInitializationListener(36) [APP LOG] /root/.knowledge/logs/app.log
docker-knowledge-app-1  |  INFO 2023-05-22 01:40:28,114 DBConnenctionLogic(45) Custom connection setting is exists.
docker-knowledge-app-1  | 22-May-2023 01:40:28.269 SEVERE [localhost-startStop-1] org.postgresql.Driver.connect Connection error:
docker-knowledge-app-1  |  org.postgresql.util.PSQLException: Connection to db:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
docker-knowledge-app-1  |       at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:265)
docker-knowledge-app-1  |       at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
docker-knowledge-app-1  |       at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:194)
docker-knowledge-app-1  |       at org.postgresql.Driver.makeConnection(Driver.java:450)
docker-knowledge-app-1  |       at org.postgresql.Driver.connect(Driver.java:252)
docker-knowledge-app-1  |       at java.sql.DriverManager.getConnection(DriverManager.java:664)
docker-knowledge-app-1  |       at java.sql.DriverManager.getConnection(DriverManager.java:247)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.newConnection(ConnectionPoolImpl.java:123)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getCon(ConnectionPoolImpl.java:105)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getConnection(ConnectionPoolImpl.java:66)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getConnection(ConnectionPoolImpl.java:60)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionManager.getConnection(ConnectionManager.java:281)
docker-knowledge-app-1  |       at org.support.project.ormapping.transaction.TransactionManager.start(TransactionManager.java:64)
docker-knowledge-app-1  |       at org.support.project.ormapping.transaction.Transaction.invoke(Transaction.java:39)
docker-knowledge-app-1  |       at org.support.project.aop.Intercepter.invoke(Intercepter.java:174)
docker-knowledge-app-1  |       at org.support.project.web.dao.SystemsDao_$$_jvst421_0.selectOnKey(SystemsDao_$$_jvst421_0.java)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitDB.init(InitDB.java:127)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitializationListener.contextInitialized(InitializationListener.java:41)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
docker-knowledge-app-1  |       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
docker-knowledge-app-1  |       at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
docker-knowledge-app-1  |       at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
docker-knowledge-app-1  |       at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
docker-knowledge-app-1  |       at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
docker-knowledge-app-1  |       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
docker-knowledge-app-1  |       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
docker-knowledge-app-1  |       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
docker-knowledge-app-1  |       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
docker-knowledge-app-1  |       at java.lang.Thread.run(Thread.java:748)
docker-knowledge-app-1  | Caused by: java.net.ConnectException: Connection refused (Connection refused)
docker-knowledge-app-1  |       at java.net.PlainSocketImpl.socketConnect(Native Method)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
docker-knowledge-app-1  |       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
docker-knowledge-app-1  |       at java.net.Socket.connect(Socket.java:589)
docker-knowledge-app-1  |       at org.postgresql.core.PGStream.<init>(PGStream.java:68)
docker-knowledge-app-1  |       at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:144)
docker-knowledge-app-1  |       ... 30 more
docker-knowledge-app-1  |
docker-knowledge-app-1  | ERROR 2023-05-22 01:40:28,271 ConnectionPoolImpl(127) Can't create a new connection for jdbc:postgresql://db/knowledge_production
docker-knowledge-app-1  | org.postgresql.util.PSQLException: Connection to db:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
docker-knowledge-app-1  |       at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:265)
docker-knowledge-app-1  |       at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
docker-knowledge-app-1  |       at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:194)
docker-knowledge-app-1  |       at org.postgresql.Driver.makeConnection(Driver.java:450)
docker-knowledge-app-1  |       at org.postgresql.Driver.connect(Driver.java:252)
docker-knowledge-app-1  |       at java.sql.DriverManager.getConnection(DriverManager.java:664)
docker-knowledge-app-1  |       at java.sql.DriverManager.getConnection(DriverManager.java:247)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.newConnection(ConnectionPoolImpl.java:123)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getCon(ConnectionPoolImpl.java:105)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getConnection(ConnectionPoolImpl.java:66)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getConnection(ConnectionPoolImpl.java:60)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionManager.getConnection(ConnectionManager.java:281)
docker-knowledge-app-1  |       at org.support.project.ormapping.transaction.TransactionManager.start(TransactionManager.java:64)
docker-knowledge-app-1  |       at org.support.project.ormapping.transaction.Transaction.invoke(Transaction.java:39)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitDB.init(InitDB.java:127)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitializationListener.contextInitialized(InitializationListener.java:41)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
docker-knowledge-app-1  |       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
docker-knowledge-app-1  |       at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
docker-knowledge-app-1  |       at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
docker-knowledge-app-1  |       at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
docker-knowledge-app-1  |       at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
docker-knowledge-app-1  |       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
docker-knowledge-app-1  |       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
docker-knowledge-app-1  |       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
docker-knowledge-app-1  |       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
docker-knowledge-app-1  |       at java.lang.Thread.run(Thread.java:748)
docker-knowledge-app-1  | Caused by: java.net.ConnectException: Connection refused (Connection refused)
docker-knowledge-app-1  |       at java.net.PlainSocketImpl.socketConnect(Native Method)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
docker-knowledge-app-1  |       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
docker-knowledge-app-1  |       at java.net.Socket.connect(Socket.java:589)
docker-knowledge-app-1  |       at org.postgresql.core.PGStream.<init>(PGStream.java:68)
docker-knowledge-app-1  |       at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:144)
docker-knowledge-app-1  |       ... 28 more
docker-knowledge-app-1  |  INFO 2023-05-22 01:40:28,276 Intercepter(218) [ERROR] class org.support.project.web.dao.SystemsDao_$$_jvst421_0 : selectOnKey : コネクションの生成に失敗しました。 [cause] Connection to db:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
docker-knowledge-app-1  | ----- SQL Infomation -----
docker-knowledge-app-1  |
docker-knowledge-app-1  |  INFO 2023-05-22 01:40:28,277 Intercepter(220)   <Cause>
docker-knowledge-app-1  | org.postgresql.util.PSQLException: Connection to db:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
docker-knowledge-app-1  |       at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:265)
docker-knowledge-app-1  |       at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
docker-knowledge-app-1  |       at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:194)
docker-knowledge-app-1  |       at org.postgresql.Driver.makeConnection(Driver.java:450)
docker-knowledge-app-1  |       at org.postgresql.Driver.connect(Driver.java:252)
docker-knowledge-app-1  |       at java.sql.DriverManager.getConnection(DriverManager.java:664)
docker-knowledge-app-1  |       at java.sql.DriverManager.getConnection(DriverManager.java:247)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.newConnection(ConnectionPoolImpl.java:123)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getCon(ConnectionPoolImpl.java:105)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getConnection(ConnectionPoolImpl.java:66)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getConnection(ConnectionPoolImpl.java:60)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionManager.getConnection(ConnectionManager.java:281)
docker-knowledge-app-1  |       at org.support.project.ormapping.transaction.TransactionManager.start(TransactionManager.java:64)
docker-knowledge-app-1  |       at org.support.project.ormapping.transaction.Transaction.invoke(Transaction.java:39)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitDB.init(InitDB.java:127)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitializationListener.contextInitialized(InitializationListener.java:41)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
docker-knowledge-app-1  |       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
docker-knowledge-app-1  |       at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
docker-knowledge-app-1  |       at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
docker-knowledge-app-1  |       at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
docker-knowledge-app-1  |       at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
docker-knowledge-app-1  |       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
docker-knowledge-app-1  |       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
docker-knowledge-app-1  |       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
docker-knowledge-app-1  |       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
docker-knowledge-app-1  |       at java.lang.Thread.run(Thread.java:748)
docker-knowledge-app-1  | Caused by: java.net.ConnectException: Connection refused (Connection refused)
docker-knowledge-app-1  |       at java.net.PlainSocketImpl.socketConnect(Native Method)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
docker-knowledge-app-1  |       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
docker-knowledge-app-1  |       at java.net.Socket.connect(Socket.java:589)
docker-knowledge-app-1  |       at org.postgresql.core.PGStream.<init>(PGStream.java:68)
docker-knowledge-app-1  |       at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:144)
docker-knowledge-app-1  |       ... 28 more
docker-knowledge-app-1  | 22-May-2023 01:40:28.280 SEVERE [localhost-startStop-1] org.postgresql.Driver.connect Connection error:
docker-knowledge-app-1  |  org.postgresql.util.PSQLException: Connection to db:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
docker-knowledge-app-1  |       at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:265)
docker-knowledge-app-1  |       at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
docker-knowledge-app-1  |       at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:194)
docker-knowledge-app-1  |       at org.postgresql.Driver.makeConnection(Driver.java:450)
docker-knowledge-app-1  |       at org.postgresql.Driver.connect(Driver.java:252)
docker-knowledge-app-1  |       at java.sql.DriverManager.getConnection(DriverManager.java:664)
docker-knowledge-app-1  |       at java.sql.DriverManager.getConnection(DriverManager.java:247)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.newConnection(ConnectionPoolImpl.java:123)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getCon(ConnectionPoolImpl.java:105)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getConnection(ConnectionPoolImpl.java:66)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getConnection(ConnectionPoolImpl.java:60)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionManager.getConnection(ConnectionManager.java:281)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionManager.getConnection(ConnectionManager.java:244)
docker-knowledge-app-1  |       at org.support.project.ormapping.dao.AbstractDao.getConnection(AbstractDao.java:108)
docker-knowledge-app-1  |       at org.support.project.ormapping.dao.AbstractDao.executeUpdate(AbstractDao.java:458)
docker-knowledge-app-1  |       at org.support.project.knowledge.dao.gen.DatabaseControlDao.dropAllTable(DatabaseControlDao.java:77)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.v0_0_1.InitializeSystem.createTables(InitializeSystem.java:95)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.v0_0_1.InitializeSystem.doMigrate(InitializeSystem.java:32)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitDB.doMigrate(InitDB.java:199)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitDB.doInit(InitDB.java:121)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitDB.init(InitDB.java:136)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitializationListener.contextInitialized(InitializationListener.java:41)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
docker-knowledge-app-1  |       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
docker-knowledge-app-1  |       at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
docker-knowledge-app-1  |       at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
docker-knowledge-app-1  |       at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
docker-knowledge-app-1  |       at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
docker-knowledge-app-1  |       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
docker-knowledge-app-1  |       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
docker-knowledge-app-1  |       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
docker-knowledge-app-1  |       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
docker-knowledge-app-1  |       at java.lang.Thread.run(Thread.java:748)
docker-knowledge-app-1  | Caused by: java.net.ConnectException: Connection refused (Connection refused)
docker-knowledge-app-1  |       at java.net.PlainSocketImpl.socketConnect(Native Method)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
docker-knowledge-app-1  |       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
docker-knowledge-app-1  |       at java.net.Socket.connect(Socket.java:589)
docker-knowledge-app-1  |       at org.postgresql.core.PGStream.<init>(PGStream.java:68)
docker-knowledge-app-1  |       at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:144)
docker-knowledge-app-1  |       ... 34 more
docker-knowledge-app-1  |
docker-knowledge-app-1  | ERROR 2023-05-22 01:40:28,280 ConnectionPoolImpl(127) Can't create a new connection for jdbc:postgresql://db/knowledge_production
docker-knowledge-app-1  | org.postgresql.util.PSQLException: Connection to db:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
docker-knowledge-app-1  |       at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:265)
docker-knowledge-app-1  |       at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
docker-knowledge-app-1  |       at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:194)
docker-knowledge-app-1  |       at org.postgresql.Driver.makeConnection(Driver.java:450)
docker-knowledge-app-1  |       at org.postgresql.Driver.connect(Driver.java:252)
docker-knowledge-app-1  |       at java.sql.DriverManager.getConnection(DriverManager.java:664)
docker-knowledge-app-1  |       at java.sql.DriverManager.getConnection(DriverManager.java:247)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.newConnection(ConnectionPoolImpl.java:123)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getCon(ConnectionPoolImpl.java:105)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getConnection(ConnectionPoolImpl.java:66)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionPoolImpl.getConnection(ConnectionPoolImpl.java:60)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionManager.getConnection(ConnectionManager.java:281)
docker-knowledge-app-1  |       at org.support.project.ormapping.connection.ConnectionManager.getConnection(ConnectionManager.java:244)
docker-knowledge-app-1  |       at org.support.project.ormapping.dao.AbstractDao.getConnection(AbstractDao.java:108)
docker-knowledge-app-1  |       at org.support.project.ormapping.dao.AbstractDao.executeUpdate(AbstractDao.java:458)
docker-knowledge-app-1  |       at org.support.project.knowledge.dao.gen.DatabaseControlDao.dropAllTable(DatabaseControlDao.java:77)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.v0_0_1.InitializeSystem.createTables(InitializeSystem.java:95)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.v0_0_1.InitializeSystem.doMigrate(InitializeSystem.java:32)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitDB.doMigrate(InitDB.java:199)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitDB.doInit(InitDB.java:121)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitDB.init(InitDB.java:136)
docker-knowledge-app-1  |       at org.support.project.knowledge.deploy.InitializationListener.contextInitialized(InitializationListener.java:41)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
docker-knowledge-app-1  |       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
docker-knowledge-app-1  |       at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
docker-knowledge-app-1  |       at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
docker-knowledge-app-1  |       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
docker-knowledge-app-1  |       at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
docker-knowledge-app-1  |       at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
docker-knowledge-app-1  |       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
docker-knowledge-app-1  |       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
docker-knowledge-app-1  |       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
docker-knowledge-app-1  |       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
docker-knowledge-app-1  |       at java.lang.Thread.run(Thread.java:748)
docker-knowledge-app-1  | Caused by: java.net.ConnectException: Connection refused (Connection refused)
docker-knowledge-app-1  |       at java.net.PlainSocketImpl.socketConnect(Native Method)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
docker-knowledge-app-1  |       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
docker-knowledge-app-1  |       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
docker-knowledge-app-1  |       at java.net.Socket.connect(Socket.java:589)
docker-knowledge-app-1  |       at org.postgresql.core.PGStream.<init>(PGStream.java:68)
docker-knowledge-app-1  |       at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:144)
docker-knowledge-app-1  |       ... 34 more
docker-knowledge-app-1  | 22-May-2023 01:40:28.285 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
docker-knowledge-app-1  | 22-May-2023 01:40:28.317 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors
docker-knowledge-app-1  |  INFO 2023-05-22 01:40:28,321 CronListener(239) finish batch processes.
docker-knowledge-app-1  | 22-May-2023 01:40:28.328 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [5,561] ms
docker-knowledge-app-1  | 22-May-2023 01:40:28.328 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/examples]
docker-knowledge-app-1  | 22-May-2023 01:40:28.405 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/examples] has finished in [77] ms
docker-knowledge-app-1  | 22-May-2023 01:40:28.405 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/manager]
docker-knowledge-app-1  | 22-May-2023 01:40:28.418 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/manager] has finished in [13] ms
docker-knowledge-app-1  | 22-May-2023 01:40:28.418 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/host-manager]
docker-knowledge-app-1  | 22-May-2023 01:40:28.427 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/host-manager] has finished in [9] ms
docker-knowledge-app-1  | 22-May-2023 01:40:28.427 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/docs]
docker-knowledge-app-1  | 22-May-2023 01:40:28.435 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/docs] has finished in [8] ms
docker-knowledge-app-1  | 22-May-2023 01:40:28.440 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
docker-knowledge-app-1  | 22-May-2023 01:40:28.451 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
docker-knowledge-app-1  | 22-May-2023 01:40:28.458 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 5718 ms
docker-knowledge-db-1   | performing post-bootstrap initialization ... ok
docker-knowledge-db-1   |
docker-knowledge-db-1   | WARNING: enabling "trust" authentication for local connections
docker-knowledge-db-1   | You can change this by editing pg_hba.conf or using the option -A, or
docker-knowledge-db-1   | --auth-local and --auth-host, the next time you run initdb.
docker-knowledge-db-1   | syncing data to disk ... ok
docker-knowledge-db-1   |
docker-knowledge-db-1   | Success. You can now start the database server using:
docker-knowledge-db-1   |
docker-knowledge-db-1   |     pg_ctl -D /var/lib/postgresql/data -l logfile start
docker-knowledge-db-1   |
docker-knowledge-db-1   | waiting for server to start....LOG:  database system was shut down at 2023-05-22 01:40:33 UTC
docker-knowledge-db-1   | LOG:  MultiXact member wraparound protections are now enabled
docker-knowledge-db-1   | LOG:  autovacuum launcher started
docker-knowledge-db-1   | LOG:  database system is ready to accept connections
docker-knowledge-db-1   |  done
docker-knowledge-db-1   | server started
docker-knowledge-db-1   | CREATE DATABASE
docker-knowledge-db-1   |
docker-knowledge-db-1   |
docker-knowledge-db-1   | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
docker-knowledge-db-1   |
docker-knowledge-db-1   | LOG:  received fast shutdown request
docker-knowledge-db-1   | waiting for server to shut down...LOG:  aborting any active transactions
docker-knowledge-db-1   | LOG:  autovacuum launcher shutting down
docker-knowledge-db-1   | LOG:  shutting down
docker-knowledge-db-1   | .LOG:  database system is shut down
docker-knowledge-db-1   |  done
docker-knowledge-db-1   | server stopped
docker-knowledge-db-1   |
docker-knowledge-db-1   | PostgreSQL init process complete; ready for start up.
docker-knowledge-db-1   |
docker-knowledge-db-1   | LOG:  database system was shut down at 2023-05-22 01:40:42 UTC
docker-knowledge-db-1   | LOG:  MultiXact member wraparound protections are now enabled
docker-knowledge-db-1   | LOG:  database system is ready to accept connections
docker-knowledge-db-1   | LOG:  autovacuum launcher started

Knowledgeをdocker-composeで動かす

この記事は「docker-knowledge」のReadme.mdを参考としております。

from https://github.com/support-project/docker-knowledge

docker-knowledge

この記事はナレッジ蓄積システムknowledgeのシステムをdocker-composeを使用して構築する方法を紹介します。

  • これはKnowledgeを構築することができるDockerfileです。

Knowledgeとは何か

起動方法

このソースコードを入手し、docker-compose upでシステムを起動するだけです。

以下のソースコードをペーストしましょう。

git clone https://github.com/minegishirei/docker-knowledge.git
cd docker-knowledge
docker-compose up