#下載Docker官方源 [1] cd /etc/yum.repos.d wget https://download.docker.com/linux/centos/docker-ce.repo #安裝docker CentOS7 下直接yum -y install docker #啓動docker,將docker設置爲開機啓動 systemctl start docker systemctl enable docker #查看運行中的容器 docker ps #開啓、關閉、kill容器 docker stop Name/ID docker start Name/ID docker kill Name/ID #配置鏡像加速 修改/etc/docker/daemon.json { "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"] } 若是docker已經啓動要重啓docker纔會使加速配置生效 systemctl restart docker #初始化鏡像 docker pull docker.io/centos #將指定的鏡像實例化爲容器 docker run -d -p 3307:3306 --name test_centos7 docker.io/centos:latest 參數: -p 將容器端口映射成宿主機端口。格式:本機端口:容器端口 --name 容器名稱。 -d 容器進入後臺運行,咱們在容器中執行操做完成並退出後容器不會結束運行。 [1] 更多參數 [1] #進入到建立的容器執行其餘操做 docker exec -ti test_centos7 /bin/bash 參數: [1] 進入容器後就能夠像ssh登陸服務器後同樣執行其餘操做,如運行yum安裝軟件、執行shell操做文件目錄等 #容器開啓或者關閉 docker stop test_centos7 docker start test_centos7 #查看容器的指定端口(如3306)對應本地機器的IP和端口號 docker port test_centos7 3306 #0.0.0.0:3307 #在下載鏡像前搜索是否存在相關鏡像 docker search centos docker pull centos:7 #實例化容器時若是要映射多個端口到宿主機上能夠指定多個-p參數 docker run -d -p 80:80 -p 2222:22 --name test_centos7 docker.io/centos #若是容器中沒法執行systemctl命令則須要在容器實例建立時執行/usr/sbin/init docker run -d -p 80:80 -p 2222:22 --name test_centos7 docker.io/centos /usr/sbin/init #查看已經創建的容器 docker ps -a #將容器保存爲鏡像(後面的hash值經過docker ps -a命令查看) [1] docker commit 861eea8a625e test/centos7-ssh:v0.1 #查看本地的鏡像 docker images #刪除docker鏡像 docker rmi test/centos7-ssh:v0.1 #將容器刪除(注意:容器中的全部數據都將丟失,操做前請作好相關數據備份) docker rm test_centos7 #將宿主機內的數據複製到容器中 docker cp /etc/yum.repos.d/ test_centos7:/etc/yum.repos.d/ docker cp /etc/localtime test_centos7:/etc/localtime #查看容器IP docker inspect test_centos7 | grep IPAddress #經過Dockerfile文件製做鏡像 [1] [2] 1.新建一個目錄: mkdir lnmp 2.進入目錄下新建Dockerfile文件,內容以下: ############################### # This my first nginx Dockerfile # Version 1.0 # Base images 基礎鏡像 FROM test/centos7-ssh:v0.1 #ENV 設置環境變量 ENV PATH /usr/local/php_565/bin:$PATH #EXPOSE 80 #EXPOSE 443 #EXPOSE 8080 #CMD 運行如下命令 CMD ["/usr/sbin/init"] ############################### #使用Dockerfile製做鏡像 docker build -t test/centos7-ssh:v0.2 . #docker-compose進入某個容器 docker-compose exec php bash #主機意外關機後進入關機前的docker實例 docker ps -a 看容器名 docker start 容器名 #查看docker容器中的進程,docker容器中的進程經過宿主機的ps -ef命令也能夠看到 docker top 9b40a74ceb82(容器id) #Docker目錄掛載 [1] docker run -it -v /test:/soft centos /bin/bash #啓動一個centos容器,宿主機的/test目錄掛載到容器的/soft目錄 注: 1. 在容器啓動後,容器內會自動建立/soft的目錄 2. 宿主機目錄若是不存在,則會自動生成 #docker經過link方式連接另外一個容器 [1] --link www_mysql:my_mysql_server.cc #經過--link鏈接名爲www_mysql的容器,併爲其設置了別名my_mysql_server.cc #重命名鏡像tag [1] docker tag 3da0f4853002 docker.io/mysql:latest_v1 #查看指定實例日誌 [1] [2] #docker logs -f -t --tail 500 www_mysql #重命名(docker ps -a列表中的)容器 [1] docker rename www_mysql www_mysql_bak #以指定格式顯示容器列表 [1] docker ps -a --format "{{.ID}}: {{.Command}}" docker ps -a --format "{{.ID}}: {{.Names}}"