docker筆記

#下載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}}"
相關文章
相關標籤/搜索