LoginSignup
2
3

More than 1 year has passed since last update.

Docker最低限知識

Last updated at Posted at 2021-08-03

Dockerとは

  • コンテナ型仮想化技術を実現するために実行される常駐化アプリケーションとそれを操作するためのコマンドフロントインタフェースから成るプロダクト
  • アプリケーションのデプロイに特化しており、コンテナを中心とした開発・運用を可能とする

ホストOS型仮想化とコンテナ型仮想化の違い

  • ホスト型とコンテナ型の構成が違う

メリット

  • 軽い早い
  • 環境差異問題解消
  • xamppと違って違う環境すぐ用意(PHP複数バージョン)
  • デプロイ簡単

DockerHubに登録

docker login 
docker logout

Docker Help使用

docker help
docker image --help

Docker Image

# 一覧
docker images
docker image ls

# Image取得
docker pull ImageName:[TagName]

# Image詳細
docker inspect ImageName

# Imageタグ付け
docker tag ImageName:[TagName] repoName/ImageName:[TagName]

# Image削除
docker rmi ImageName

# Imageプッシュ
docker push ImageName:[TagName]

Docker Container

# コンテナ起動
docker run -d -p <HostPort>:<ContainerPort> -v <HostPath>:<ContainerPath> --name ContainerName ImageName:[TagName]

# コンテナ一覧確認
docker ps -a

# コンテナへのログイン
docker exec -it ContainerName bash

# ファイルコピー
docker cp <HostFiles> ContainerName:<ContainerPath>
docker cp ContainerName:<ContainerPath> <HostFiles>

# コンテナからDockerイメージ作成
docker commit ContainerName ImageName:[TagName]

# コンテナ起動、停止
docker start ContainerName
docker stop ContainerName

# コンテナ削除
docker rm (-f) ContainerName

実例

docker run --name php74 -d -p 80 -v "C:\Acquia\docker\static":/var/www/html php:7.4-apache
docker run --name php56 -d -p 80 -v "C:\Acquia\docker\static":/var/www/html php:5.6-apache

docker run --name my-nginx -v "C:\Acquia\docker\static":/usr/share/nginx/html -d -p 80 nginx
docker tag ...
docker push 
ほかの人docker pull

docker run -v "C:\Acquia\docker\mysql":/var/lib/mysql --name my-mysql -e MYSQL_ROOT_PASSWORD=aquaring -d --net=mynet --ip=172.19.0.33 mysql

docker run --name my-drupal --net mynet -p 80 -d drupal

Docker Network

docker network ls
docker network create --subnet=172.19.0.0/16 mynet

Dockerfile

FROM php:7.4-fpm
COPY php.ini /usr/local/etc/php/

RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer

RUN apt-get update \
&& apt-get install -y \
git \
zip \
unzip \
vim
RUN apt-get update \
    && docker-php-ext-install pdo_mysql

ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /composer
ENV PATH $PATH:/composer/vendor/bin
WORKDIR /var/www

RUN composer global require "laravel/installer"

Dockerfileでイメージ作成

docker build -t repoName/ImageName:[TagName] .
2
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3