基本コマンド
## dockerのバージョン確認 docker version ## docker hub にloginする docker login ## コンテナを1つ起動(hello-worldを表示する) docker run hello-world ## 起動中のコンテナを表示 docker ps ## 起動中のコンテナを表示 -a docker ps -a ## コンテナに名前をつけて起動 docker run --name my-container hello-world ## コンテナを起動してプロセス完了後にコンテナを削除する docker run --name rmtest --rm hello-world
コンテナの作成と開始・停止
## コンテナを作成
docker run -it --name testos centos:8 /bin/bash
## コンテナを起動する
docker start testos
## 起動したコンテナを確認する
docker ps
## コンテナを停止する(コンテナ名を指定)
docker stop testos
## コンテナを再起動する
docker restart testos
## コンテナを停止する(コンテナIDを指定)
docker stop {CONTAINER ID}
コンテナ内のコマンド操作
## コンテナに入る docker exec -it testos /bin/bash ## コンテナから抜ける exit ## コンテナに入らずにコマンド実行する docker exec testos cat /etc/hosts
コンテナの削除
## コンテナの削除(コンテナIDを指定)
docker rm {CONTAINER ID}
## 複数のコンテナの削除(コンテナIDを指定)
docker rm {CONTAINER ID} {CONTAINER ID} {CONTAINER ID}
## コンテナの削除(コンテナ名を指定)
docker rm {NAMES}
## コンテナを強制的に削除(コンテナ名を指定)
docker rm -f {NAMES}
dockerイメージの操作
docker imageは起動してると削除できないので、事前にコンテナを停止&削除してから削除する必要がある
## コンテナのイメージを表示
docker images
## コンテナの停止
docker stop hello-world
## コンテナの削除
docker rm hello-world
## コンテナのイメージの削除
docker rmi {IMAGE ID}
Dockerfileからイメージを作成する
## 事前にdockerfileを作成してフォルダに入れておく cat /buildtest/Dockerfile >FROM centos:7 >RUN yum update -y ## イメージのbuildを行う(Dockerfileの入っているフォルダを指定) docker build buildtest ## イメージの確認 docker images
コンテナとホストマシンでファイルのやり取りを行う
## 事前に適当なフォルダにファイルを用意 cat /command_test/test.txt > cp test ## コンテナの起動 docker start testos ## ローカル環境のファイルをコンテナにコピー docker cp command_test/test.txt testos:/opt ## コンテナにコピーされたファイルがあるか確認 docker exec testos cat opt/test.txt
コンテナのログ出力
## logの出力 docker logs testos ## logのリアルタイム監視 docker logs -f testos
コンテナの状態を確認
## コンテナの設定情報を確認 docker inspect testos
コンテナのイメージを取得する
## dockerイメージの取得
docker pull {IMAGE NAME}
## 取得したイメージの確認
docker ps
コンテナをイメージ化する
## コンテナをイメージ化する(※TAGは自由に設定 ver1.0などを指定可能)
docker commit {CONTAINER NAME} {自分のdocker-id}/{作成するIMAGE NAME}:{TAG}
イメージをDockerHubにアップする
## イメージをDockerHubにアップする docker push ymtoym10/ymto-centos:v1
イメージの履歴確認
## イメージの履歴を確認
docker history {REPOSITORY}:{TAG}
dockerでnginxをローカルに立ち上げる
## nginxを立ち上げる docker run -v --name testnginx -p 8080:80 nginx:1.16 ## 事前にtestフォルダにindex.htmlを作成しておく(以下ではtestフォルダ以下にindex.htmlを作成してhello worldと記載する vi /test/index.html >hello world ## nginxを立ち上げてindex.htmlを表示する docker run -v /test/:/usr/share/nginx/html --name testnginx -p 8080:80 nginx:1.16
dockerfileからコンテナを作成する
## 事前にtest2フォルダにDockerfileを作成しておく
vi /test2/Dockerfile
>FROM ubuntu:20.04
>RUN apt-get update -y && \
> apt-get install -y nginx
>CMD ["nginx", "-g", "demon off:"]
## dockerfileからコンテナのイメージ名をつけてbuildを行う
docker build -t {IMAGE_NAME} test2/
## dockerイメージからコンテナを立ち上げる
docker run -d -p 8081:80 --name {CONTAINER_NAME} {IMAGE_NAME}
DockerfileでのCOPYの設定例
## 事前にtest3/cooyフォルダにDockerfileを作成しておく
vi /test3/copy/Dockerfile
>FROM ubuntu:20.04
>RUN apt-get update -y && \
> apt-get install -y nginx
>COPY index.html /var/www/html
>CMD ["nginx", "-g", "daemon off;"]
## 事前にtest3/copyフォルダにindex.htmlを作成しておく
vi /test3/copy/index.html
> <h1>hello world</h1>
## test3/copyフォルダのDockerfileからイメージを作成する
docker build -t {IMAGE_NAME} test3/copy/
## 上記で作成したイメージからコンテナを起動
docker run -d -p 8082:80 --name {CONTAINER_NAME} {IMAGE_NAME}
DockerfileでのENVの設定例
## 事前にtest4/envフォルダにDockerfileを作成しておく
vi /test4/env/Dockerfile
>FROM ubuntu:20.04
>RUN apt-get update -y && \
> apt-get install -y nginx
>ENV TESTENV="testenv"
>COPY index.html /var/www/html
>CMD ["nginx", "-g", "daemon off;"]
## /test4/env/フォルダのDockerfileからイメージを作成する
docker build -t {IMAGE_NAME} test4/env/
## 上記で作成したイメージからコンテナを起動
docker run -d -p 8083:80 --name {CONTAINER_NAME} {IMAGE_NAME}
## コンテナの状況を確認
docker ps
## 登録したENVの内容確認
docker inspect {CONTAINER_NAME} | grep ENV
> "TESTENV=testenv"
Dockerfileでのデータベースの設定例
## 事前にtest5/DBフォルダにDockerfileを作成しておく
vi /test5/DB/Dockerfile
>FROM mariadb:10.6.7
>RUN apt-get update -y
>COPY test.conf /etc/mysql/conf.d
>ENV MYSQL_USER=root
>ENV MYSQL_DATABASE=docker
>ENV MYSQL_ROOT_PASSWORD=root
## 事前にCOPY元のファイルを作成しておく
touch /test5/DB/test.conf
## /test5/DBフォルダのDockerfileからイメージを作成する
docker build -t {IMAGE_NAME} test5/DB/
## イメージができているか確認
docker images
## コンテナの立ち上げ
docker run -d --name {CONTAINER_NAME} {IMAGE_NAME}
## コンテナの起動確認
docker ps
## コンテナに入る
docker exec -it {CONTAINER_NAME} /bin/bash
## DBへのログイン(passwordを求められるのでrootを指定)
mysql -u root -p
>Entry password: root
## データベースの確認
MariaDB [(none)]> show databases
-> ;
+--------------------+
| Database |
+--------------------+
| docker |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.021 sec)
docker-composeのコマンド
# docker-compose.ymlで管理されているコンテナを止めて削除する
docker-compose down
# docker-compose.ymlで管理されているコンテナを全て再起動
docker-compose restart
# docker-compose.ymlで管理されているコンテナ一覧を表示
docker-compose ps
# docker-compose.ymlでサービスを1つ指定してコマンドを実行
docker-compose run {サービス名}



