一,安裝Docker,下載Docker CE(Community Edition)
1.MAC環(huán)境
https://store.docker.com/editions/community/docker-ce-desktop-mac
2.Linux環(huán)境
https://store.docker.com/editions/community/docker-ce-server-centos?tab=description
3.Windows環(huán)境(Windows 10, Windows7)
https://www.docker.com/products/docker-toolbox
Wiki本地下載地址:DockerToolbox.exe
安裝DockerToolbox完成后,將boot2docker.iso置于
C:\Users\Administrator\.docker\machine\cache\boot2docker.iso,路徑名根據(jù)自己的操作系統(tǒng)用戶名有所變化
建議都使用Docker Toolbox,ToolBox會(huì)在虛擬機(jī)中創(chuàng)建Linux環(huán)境并運(yùn)行Docker Engine
DockerToolBox會(huì)使用boot2docker.iso在VirtualBox中創(chuàng)建一個(gè)Linux系統(tǒng)實(shí)例,
當(dāng)創(chuàng)建完成后,執(zhí)行docker-machine ls命令查看default虛擬機(jī)已創(chuàng)建
執(zhí)行docker-machine ssh default進(jìn)入虛擬機(jī)linux環(huán)境終端,即可執(zhí)行docker命令
Docker基礎(chǔ)知識(shí)
https://docs.docker.com/get-started/#container-diagram
二,容器運(yùn)行環(huán)境
Host OS一般指Unix系的操作系統(tǒng),Docker利用Linux環(huán)境提供Namespace資源隔離技術(shù)實(shí)現(xiàn)相互隔離的輕量虛擬化環(huán)境。
三、Docker名詞
Image, 鏡像
Contianer, 容器,運(yùn)行鏡像時(shí)生成,可保存為鏡像
Docker Engine,Docker引擎
Docker File, 鏡像制作定義文件
Docker Engine Swarm Mode,Docker引擎集群模式
Docker Compose File,運(yùn)行服務(wù)定義文件,yml格式的文件
Registry,鏡像倉庫
Official Registry, 官方鏡像倉庫,訪問Docker Hub網(wǎng)站可查詢
Private Registry,私有鏡像倉庫,建立在本地網(wǎng)絡(luò)用于快速傳輸鏡像文件
四、常用Docker命令
docker ps,查看運(yùn)行的容器
docker ps -a,查看所有運(yùn)行的容器
docker ps --help,查看ps參數(shù)說明
docker --help,查看所有docker命令的說明
docker images,查看本地已經(jīng)下載的鏡像
docker inspect [container-name],查看容器詳細(xì)信息
docker exec -it [container-name] /bin/bash,執(zhí)行容器內(nèi)部bash
docker run [image-name],運(yùn)行鏡像
docker rm [container-name],刪除容器,通過docker ps -a命令查看所有容器,刪除不再使用的容器,釋放空間
docker search [image-name],搜索官方倉庫鏡像名稱
docker swarm init,初始化建立docker集群
docker service ls,查看運(yùn)行在docker集群的服務(wù)
docker node ls,查看集群節(jié)點(diǎn)信息
Docker私有倉庫
在Docker Engine配置私有倉庫地址,在Docker運(yùn)行系統(tǒng)中修改配置文件/etc/docker/daemon.json,加入以下內(nèi)容:
{
"insecure-registries":["10.129.26.1:5000"] ,
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"experimental":true
}
以上配置了一個(gè)私有倉庫地址為10.129.26.1:5000,同時(shí)配置了一個(gè)鏡像倉庫的國內(nèi)訪問地址https://docker.mirrors.ustc.edu.cn。
設(shè)置experimental為true時(shí),可以使用docker引擎的實(shí)驗(yàn)功能
在docker toolbox創(chuàng)建的虛擬機(jī)環(huán)境中可以嘗試使用以下命令加入配置:
sudo -i
echo ??{\"insecure-registries\":[\"10.129.26.1:5000\"] ,\"registry-mirrors\": [\"https://docker.mirrors.ustc.edu.cn\"],\"experimental\":true} >> /etc/docker/daemon.json
exit
重啟boot2docker虛擬機(jī)
五、示例
示例1:運(yùn)行一個(gè)Redis容器
從官方倉庫下載最新版本的redis鏡像,本地運(yùn)行redis鏡像,創(chuàng)建redis容器在后臺(tái)運(yùn)行,暴露6379為服務(wù)訪問端口,并命名容器為redis-one
docker run --name redis-one -p 6379:6379 -d redis redis-server --appendonly yes
關(guān)閉redis容器
docker stop redis-one
啟動(dòng)已經(jīng)存在,再次啟動(dòng)容器
docker start redis-one
示例2:運(yùn)行一個(gè)zookeeper容器
創(chuàng)建最新版本zookeper鏡像容器,在后臺(tái)運(yùn)行,并暴露2181端口作為服務(wù)訪問端口
docker run --name zookeeper-one?-p 2181:2181 -d zookeeper
docker start zookeeper-one
執(zhí)行以下命令查看本地鏡像,可見redis:latest和zookeeper:latest兩個(gè)鏡像
docker images
示例3:運(yùn)行一個(gè)RabbitMQ容器
從私有倉庫10.129.26.1:5000下載rabbitmq:management鏡像,啟動(dòng)一個(gè)名為rabbit-one的容器,并暴露服務(wù)端口5671對應(yīng)原服務(wù)端口5672,15672對應(yīng)web界面服務(wù)端口;
同時(shí)設(shè)置rabbitmq,hostname=localmq,user=localuser,password=123456,vhost=localvmq
docker run --name rabbit-one -p 15672:15672 -p 5671:5672 --hostname localmq -e RABBITMQ_DEFAULT_USER=localuser -e RABBITMQ_DEFAULT_PASS=123456 -e RABBITMQ_DEFAULT_VHOST=localvmq -d 10.129.26.1:5000/rabbitmq:management
示例4:運(yùn)行一個(gè)Oracle容器
從私有倉庫10.129.26.1:5000下載wnameless/oracle-xe-11g鏡像,運(yùn)行名為oracle-one的容器并暴露1521位數(shù)據(jù)庫服務(wù)訪問端口
docker run --name oracle-one -d -p 49160:22 -p 1521:1521 -e ORACLE_ALLOW_REMOTE=true 10.129.26.1:5000/wnameless/oracle-xe-11g
數(shù)據(jù)庫訪問信息:
port: 1521
sid: xe
username: system
password: oracle
創(chuàng)建數(shù)據(jù)庫
使用SQL Developer工具連接到數(shù)據(jù)庫,點(diǎn)擊用戶,創(chuàng)建新的schema(用戶名和密碼),并賦予connect和resource權(quán)限
拷貝數(shù)據(jù)
使用SQL Developer工具,使用Tools中Database Copy功能拷貝數(shù)據(jù)庫
如要比較數(shù)據(jù)庫對象結(jié)構(gòu),可使用Tools中Database Diff功能進(jìn)行比較
關(guān)閉oracle容器
docker stop oracle-one
啟動(dòng)已經(jīng)存在,再次啟動(dòng)容器
docker start oracle-one