docker和docker-compose的安裝使用

Centos安裝docker

#安裝所需的軟件包。yum-utils 提供了 yum-config-manager ,並且 device mapper 存儲驅動程序需要 device-mapper-persistent-data 和 lvm2。

sudo yum install -y yum-utils device-mapper-persistent-data  lvm2

設置穩定的Docker 倉庫,之後將從倉庫安裝和更新 Docker

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安裝docker

sudo yum install docker-ce

# Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

查看docker服務是否啓動 ps aux |grep dockerd

啓動docker服務 service docker restart

# 從遠程倉庫拉取鏡像 docker pull [imageName][:Tag]

可以從https://hub.docker.com/中查看image的tag

# 列出本地所有鏡像 docker images -a

# 從鏡像啓動容器 docker run -it --rm -p 8989:8080 [imageName]

# 查看容器
    docker ps :列出當前所有正在運行的container
    docker ps -l :列出最近一次啓動的container
    docker ps -a :列出所有的container(包含歷史,即運行過的container)
    docker ps -q :列出最近一次運行的container ID
# 再次啓動容器
    docker start/stop/restart <container> #:開啓/停止/重啓container
    docker start [container_id] #:再次運行某個container (包括歷史container)

# 根據啓動的容器生成鏡像

docker commit -a usrname [cotainerID] [repository:tag]

# 將某個容器的文件系統導出到文檔中 docker export [containerID] > filename.tar

# 根據容器導出文檔生成鏡像 docker import [filename|url|-] [repository:tag]

# 刪除容器 docker rm [containerID]

# 進入到容器後臺:

docker inspect --format "{{ .State.Pid }}" [containerID]

該命令返回某個容器的PID

nsenter --target XXX --mount --uts --ipc --net --pid

其中XXX爲某個容器的PID

# 退出容器後臺  ctrl+D

# 使用Dockfile構建image

docker build -t imagename:tag [Dockerfile所在路徑]

# 宿主機與容器間的文件拷貝

docker cp

# .bashrc_docker的使用

查看容器pid: docker-pid [containerID]
查看容器IP:docker-ip [containerID]
進入容器:docker-enter [containerID]
# 將.bashrc_docker寫入到.bashrc並執行
echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc
# Some useful commands to use docker.
# Author: yeasy@github
# Created:2014-09-25

#.bashrc_docker定義了docker-pid和docker-ip兩個命令,爲了方便查看pid和ip信息。
alias docker-pid="sudo docker inspect --format '{{.State.Pid}}'"
alias docker-ip="sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}'"

#the implementation refs from https://github.com/jpetazzo/nsenter/blob/master/docker-enter
function docker-enter() {
    #if [ -e $(dirname "$0")/nsenter ]; then
    #Change for centos bash running
    if [ -e $(dirname '$0')/nsenter ]; then
        # with boot2docker, nsenter is not in the PATH but it is in the same folder
        NSENTER=$(dirname "$0")/nsenter
    else
        # if nsenter has already been installed with path notified, here will be clarified
        NSENTER=$(which nsenter)
        #NSENTER=nsenter
    fi
    [ -z "$NSENTER" ] && echo "WARN Cannot find nsenter" && return

    if [ -z "$1" ]; then
        echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]"
        echo ""
        echo "Enters the Docker CONTAINER and executes the specified COMMAND."
        echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."
    else
        PID=$(sudo docker inspect --format "{{.State.Pid}}" "$1")
        if [ -z "$PID" ]; then
            echo "WARN Cannot find the given container"
            return
        fi
        shift

        OPTS="--target $PID --mount --uts --ipc --net --pid"

        if [ -z "$1" ]; then
            # No command given.
            # Use su to clear all host environment variables except for TERM,
            # initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
            # and start a login shell.
            #sudo $NSENTER "$OPTS" su - root
            sudo $NSENTER --target $PID --mount --uts --ipc --net --pid su - root
        else
            # Use env to clear all host environment variables.
            sudo $NSENTER --target $PID --mount --uts --ipc --net --pid env -i $@
        fi
    fi
}

Docker Compose

詳細命令介紹:https://cloud.tencent.com/developer/article/1438222

通過 Docker-Compose 用戶可以很容易地用一個配置文件定義一個多容器的應用,然後使用一條指令安裝這個應用的所有依賴,完成構建。Docker-Compose 解決了容器與容器之間如何管理編排的問題。

Docker Compose 工作原理圖

安裝方法一:

#下載
sudo curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#安裝
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose version

安裝方法二:

#安裝pip
yum -y install epel-release
yum -y install python-pip
#確認版本
pip --version
#更新pip
pip install --upgrade pip
#安裝docker-compose
pip install docker-compose 
#查看版本
docker-compose version

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章