二、Docker入門——容器(映象)的建立、執行
容器的相關命令
一、建立互動式容器
docker run[option]--name=容器名稱映象名稱 [向啟動容器中傳入的命令] /bin/bash
常用引數說明
-i:表示建立並執行容器;
-t:表示容器啟動後會進入其命令列。通常於-i一起使用:-it表示建立並執行容器,且執行之後自動進入為當前應用開啟一個預設終端;
--name :為建立的容器命名;
-v 表示目錄對映關係(前者是宿主機目錄,後者是對映到宿主機上的目錄,即 宿主機目錄:容器中目錄),可以使 用多個-v 做多個目錄或檔案對映。注意:最好做目錄對映,在宿主機上做修改,然後 共享到容器上。
-d 在run後面加上-d引數,則會建立一個守護式容器在後臺執行(這樣建立容器後不 會自動登入容器,如果只加-i -t 兩個引數,建立後就會自動進去容器)。
-p 表示埠對映,前者是宿主機埠,後者是容器內的對映埠。可以使用多個-p 做多個埠對映
-e 為容器設定環境變數
--network=host 表示將主機的網路環境對映到容器中,容器的網路與主機相同
例如:
docker run -it --name=myRedis redis:latest /bin/bash
如上圖所示,相當於我們在容器中顯示地運行了一臺redis。
@×××××就是該容器的ID。
我們可以通過輸入exit或者ctrl+D退出該容器,當我們退出之後,該互動式容器也會隨之停止!
二、建立守護式容器
建立一個守護式容器:如果對於一個需要長期執行的容器來說,我們可以建立一個守護式容器。在容器內部exit退出時,容器也不會停止。
docker run [option] --name=容器名稱映象名稱 [向啟動容器中傳入的命令] /bin/bash
例如:(這裡已將之前建立的互動式容器刪除)
docker run -id --name=myRedis redis:latest /bin/bash
建立完成後,通過以下的命令進入該容器
docker exec -it 容器名稱或容器的ID /bin/bash
如圖所示,我們就進入了該容器。
三、容器的其他操作命令
1、檢視容器
docker ps #檢視正在執行的容器 docker pa -a #檢視所有的容器
2、啟動和停止容器
docker stop 容器的名稱或者ID docker start 容器的名稱或者ID
3、刪除容器
刪除容器之前要先停止該容器
docker rm 容器的名稱或者ID
4、拷貝檔案
docker cp 需要拷貝的檔案或目錄容器名稱:容器目錄->把宿主機的檔案拷貝到容器裡 docker cp 容器名稱:容器目錄需要拷貝的檔案或目錄->從容器中拷貝檔案到宿主機
5、目錄的對映
我們可以在建立容器的時候通過-v引數,將宿主機的目錄檔案與容器內的目錄檔案進行對映,這樣我們就可以通過修改宿主機目錄檔案從而去影響容器。
格式:建立容器 –v 宿主機的目錄:容器的目錄 如:docker run -id -v/usr/local/dunm.rdb:/data/dunm.rdb --name=myRedis redis:latest
ps(如果你共享的是多級的目錄,可能會出現許可權不足的提示。這是因為CentOS7中的安全模組selinux把許可權禁掉了,我們可以新增引數--privileged=true來解決對映目錄沒有許可權的問題)
6、檢視容器的資料
docker inspect 容器名稱(容器ID)
輸出的資訊很多,如下圖所示的是容器的埠和IP地址。
MySQL的部署
1、拉取MySQL映象
docker pull centos/mysql-57-centos7
可以看到MySQL映象已經下載好了
2、通過下載好的映象建立容器(守護式)
docker run -di --name=docker_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7
注意:
-p前面的埠是宿主機的埠,後面的是容器內部MySQL的預設埠。宿主機的埠可以任意,只是用來對映容器內部的MySQL的,不過通常都是寫成一致的。
-e表示新增容器的環境變數,MYSQL_ROOT_PASSWORD引數表示登入MySQL的root使用者的密碼。
可以由上圖中看出我們建立的容器已經啟動。
3、連線MySQL容器
連線的名稱隨便起;主機名填宿主機的IP地址;埠是宿主機對映容器的埠,即冒號前面的埠;使用配置的root使用者和密碼。
點選連線後可以看到成功建立了一個新的連線。
如果你想在其它機器上使用這個MySQL容器,只需要複製執行即可!
參考https://mp.weixin.qq.com/s/5HK1khkGcTgsH8vKtrR4Pg