1. ホーム
  2. サーバー

1記事でわかるDockerで遊ぶ

2022-03-03 02:59:02
<パス

Dockerの基本コマンド

ミラーリング : (ミラーとは、簡単に言うとテンプレート内のクラスに相当するオブジェクト指向のものです。要するにミラーはファイルシステムに相当し、Dockerイメージは、コンテナの実行に必要なプログラム、ライブラリ、リソース、設定などのファイルを提供するだけでなく、実行準備のための多くの設定パラメータ(匿名ボリューム、環境変数、ユーザーなど)を含む特殊なファイルシステムである。(イメージには動的なデータは含まれず、ビルド後に内容が変更されることはありません)。

To view all images locally.
	docker images
	docker images -q # View the image IDs used
	
Find mirrors.
	docker search Redis

Pull mirrors: docker
	docker pull Redis:5.0 # default to latest if you don't specify a version, to find a version go to https://hub.docker.com/

Delete a mirror: docker rmi
	docker rmi mirror ID # Delete the specified mirror
	docker rmi `docker images -q` # Delete all images

docker file to create an image: docker build -t
	docker build -t [image name

Image tagging.
	docker tage [image ID] [image name

Update the image: after starting the image 
	apt-get update


コンテナ : (コンテナとは、認識上、クラスによって作成されるインスタンスであり、ミラーと呼ばれるテンプレートから作成される実体である。コンテナは基本的にプロセスですが、ホスト上で直接実行されるプロセスとは異なり、コンテナプロセスは独自の独立したネームスペースで実行されます。そのため、コンテナは独自のルートファイルシステム、独自のネットワーク構成、独自のプロセス空間、さらには独自のユーザーID空間を持つことができる。コンテナ内のプロセスは分離された環境で実行され、あたかもホストから独立したシステムで動作しているかのように使用される。(この機能により、コンテナに包まれたアプリケーションは、ホスト上で直接実行するよりも安全性が高くなる)。

To see the running containers.
	docker ps  
To view all containers.
	docker ps -a

To build containers.
	docker run -it [image ID] /bin/bash
	docker run -it --name mycentos docker.io/centos:7 /bin/bash
Parameter description.
  -i: runs the container in interactive mode, usually used in conjunction with -t.
  -t: reassign a pseudo-input terminal to the container, usually used in conjunction with -i.
  -d: runs the container in daemon (background) mode and returns the container ID; requires docker.exec to enter the container, and the container will not shut down after exiting.
  -it: the created container is generally an interactive container
  -id: the created container is generally a daemon container.
  --name="nginx-lb": specifies a name for the container.

  To run a container that executes in the background and, at the same time, can be managed with the console.
  	docker run -it -d ubuntu:latest
  Run a container with commands executing continuously in the background, without directly displaying information about the container: docker run -d ubuntu:latest
  	docker run -d ubuntu:latest ping www.docker.com
  Run a container that executes continuously in the background, with commands, and can be restarted after the program is terminated, and can be managed from the console: docker run -d
  	docker run -d --restart=always ubuntu:latest ping www.docker.com
  Assign a name to the container.
  	docker run -d --name=ubuntu_server ubuntu:latest
  The container exposes port 80 and specifies the host port 80 to communicate with (before the host port and after that the port to be exposed by the container): 
  	docker run -d --name=ubuntu_server -p 80:80 ubuntu:latest
  Specify the directory inside the container to share with the host directory (before the host folder, after that the folder to be shared by the container): 
  	docker run -d --name=ubuntu_server -v /etc/www:/var/www ubuntu:latest

Start the container.
	docker start container ID
	docker start container name

Enter the container: # Exit the container, it will not shut down
	docker exec -it container ID /bin/bash
	docker exec -it container name /bin/bash

Stop the container.
	docker stop Container ID
	docker stop container name

Rename. 
	docker rename original container name new container name

Delete the container: # If the container deletion fails, you need to stop it first before you can delete it
	docker rm container ID  
	docker rm container name
	docker rm `docker ps -aq`
	
To view container information.
	docker inspect container name


<イグ
コンテナでデータを管理する方法は、大きく分けて2つあります。
データボリューム(Data Volumes)

データボリュームは、ホスト内のディレクトリやファイルです。コンテナ・ディレクトリがデータ・ボリューム・ディレクトリにバインドされると、他方のバインドが直ちに同期される。データボリュームは複数のコンテナで運ぶことができ、1つのコンテナは複数のデータボリュームをマウントすることができます。データボリュームの更新は、ミラーに影響を与えません。データボリュームは、コンテナが削除された場合でも、デフォルトで常に存在します。役割:コンテナデータの永続化、外部マシンとコンテナの通信、コンテナ間のデータの相互作用。

データボリュームコンテナ

継続的に更新されるデータを複数のコンテナで共有する必要がある場合、データ・ボリューム・コンテナを使用するのが最も簡単な方法です。データボリュームコンテナはコンテナでもありますが、他のコンテナがマウントするデータボリュームを提供するために特別に設計されています。

1. Dockerのインストール

1. Update the apt package index
	yum update
	
2. Install some necessary system tools.
	yum install -y yum-utils device-mapper-persistent-data lvm2
	
3. Add software source information.
	yum -y install yum-utils #Install yum-config-manager command corresponding tools
	yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
	
4. Update the yum cache: yum makecache fast
	yum makecache fast
	
5. Install Docker-ce: yum -y install docker-ce
	yum -y install docker-ce
	
6. Start the Docker backend service
	systemctl start docker
	
7. Test run hello-world
	docker run hello-world
	Since there is no local image of hello-world, you will download a hello-world image and run it inside the container.
	
8. View the docker image
	docker images

9. Set Docker to boot up
	systemctl enable docker


1.1、設定アリ雲無料ミラーガスペダル(各ユーザーのためのアリ雲は、別のミラーガスペダルを設定し、設定のチュートリアルを提供するために)。

2. Dockerについて

2.1. Dockerイメージはどのように作られるのですか?

(1). ミラーにするコンテナ

Container to mirror:
docker commit container id mirror name:version number

Mirror to file.
docker save -o zip file name mirror name:version

File to mirror: docker load -i 
docker load -i compress file name


(2).Dockerfile(ドッカーファイル

Dockerfileは、テキストファイルです。これはディレクティブのリストを含んでおり、それぞれがベースイメージを元に、レイヤーを構築し、最終的に新しいイメージを構築します。開発者向け:開発者向けに完全に1つの開発環境を提供できる。テスター向け:開発中に構築されたイメージやDockerfileファイルを直接取得して、新しいイメージを構築して作業を開始することができます。運用担当者向け:デプロイ時にアプリケーションをシームレスに移植することができる。

3. Dockerを使用したMySQLサービスの構築

1. 公式イメージを引っ張る(ここでは5.7を選択、後ろにバージョン番号を書かないと自動的に最新版を引っ張ることになる)。

docker pull mysql:5.7 # pull mysql 5.7
docker pull mysql # pull the latest mysql image


2. プルが成功したかどうかを確認する

docker images


3. Mysqlのディレクトリを作成する

cd /opt # The exact path is up to your preference
mkdir mysql
cd mysql


4. 一般的に、データベースコンテナは、ディレクトリマップを作成する必要はありません

docker run -p 3306:3306 --name c_mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
   -name: the name of the container, here c_mysql
   -e: configuration information, here configure the login password for the root user of c_mysql
   -p: port mapping, here mapping the host port 3306 to the container port 3306
   -d: source image name, here is mysql:5.7



5. ディレクトリマッピングを作成する場合(カレントパスは$PWD、改行位置は♪)、「#」を入力します。

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/conf:/etc/mysql \
-v /mydata/mysql/logs:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7


  • linuxコマンドの最後にある" \" は、最後のキャリッジリターンがコメントアウトされていることを意味し、システムはコマンドが終了していないことを理解し、キャリッジリターンなどの終了文字が読まれるまでユーザーが入力するのを待ち続けます。
  • -v: ホストとコンテナ間のディレクトリマッピングで、ホストディレクトリの前に ":、コンテナディレクトリの後に "を記述します。

6. コンテナが正しく動作していることを確認する

docker container ls


  • コンテナID、コンテナのソースイメージ、開始コマンド、作成時間、ステータス、ポートマッピング情報、コンテナ名が表示されます。

7. Mysqlへの接続
dockerに移動し、ローカルでmysqlクライアントに接続します。

docker exec -it c_mysql /bin/bash
mysql -uroot -proot


未完成、継続的に更新予定...