Docker命令筆記

 

目錄

卸載Docker

安裝Docker前安裝必要工具

添加軟件信息

更新yum緩存

安裝Docker-ce

啓動Docker後臺服務

Docker鏡像加速

刪除Docker-ce

查看Docker命令選項

查看子命令用法

測試運行hello-world

運行ubuntu

運行交互式的容器

後臺模式啓動容器

查看正在運行的容器

停止容器

查看容器內的標準輸出

下載鏡像

將容器使用的端口映射到主機上

查看端口映射情況

查看WEB應用程序日誌

查看WEB應用程序容器的進程

重啓容器

移除容器

查看鏡像列表

更新鏡像

構建鏡像

使用 nginx 鏡像


卸載Docker

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

安裝Docker前安裝必要工具

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

添加軟件信息

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

更新yum緩存

yum makecache fast

安裝Docker-ce

yum -y install docker-ce

啓動Docker後臺服務

systemctl start docker

Docker鏡像加速

編輯/etc/docker/daemon.json文件,下述示例代碼中的URL可能無效,可從 https://cr.console.aliyun.com/cn-shenzhen/mirrors 獲取

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

刪除Docker-ce

yum remove docker-ce
rm -rf /var/lib/docker

查看Docker命令選項

docker

查看子命令用法

docker <command> --help

測試運行hello-world

docker run hello-world

運行ubuntu

docker run ubuntu:15.10 /bin/echo "Hello world"
  • docker: Docker 的二進制執行文件。

  • run:與前面的 docker 組合來運行一個容器。

  • ubuntu:15.10指定要運行的鏡像,Docker首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

  • /bin/echo "Hello world": 在啓動的容器裏執行的命令

運行交互式的容器

docker run -i -t ubuntu:15.10 /bin/bash
  • -t:在新容器內指定一個僞終端或終端。

  • -i:允許你對容器內的標準輸入 (STDIN) 進行交互。

後臺模式啓動容器

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

在輸出中,我們沒有看到期望的"hello world",而是一串長字符

2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

這個長字符串叫做容器ID,對每個容器來說都是唯一的,我們可以通過容器ID來查看對應的容器發生了什麼。

首先,我們需要確認容器有在運行,可以通過 docker ps 來查看

在容器內使用docker logs命令,查看容器內的標準輸出:

docker logs 2b1b7a428627

查看正在運行的容器

docker ps

停止容器

docker stop xxx

xxx可以是容器ID,也可以是容器名。

查看容器內的標準輸出

docker logs 2b1b7a428627

下載鏡像

docker pull hello-world

將容器使用的端口映射到主機上

啓動容器時加一個參數,-P

docker run -d -P ......

配置指定的端口:

docker run -d -p 5000:5000 ......

查看端口映射情況

docker port 7a38a1ad55c6

查看WEB應用程序日誌

docker logs -f 7a38a1ad55c6

查看WEB應用程序容器的進程

docker top determined_swanson

重啓容器

docker restart xxx

移除容器

docker rm determined_swanson

查看鏡像列表

docker images

更新鏡像

運行並進入容器

docker run -t -i ubuntu:15.10 /bin/bash

更新

apt-get update

退出容器

exit

提交

docker commit -m="has update" -a="mirsual" e218edb10161 mirsual/ubuntu:v2
  • -m:提交的描述信息

  • -a:指定鏡像作者

  • e218edb10161:容器ID

  • runoob/ubuntu:v2:指定要創建的目標鏡像名

查看鏡像

docker images

構建鏡像

創建 Dockerfile 文件,加入內容類似:

FROM    centos:6.7
MAINTAINER      Fisher "[email protected]"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd runoob
RUN     /bin/echo 'runoob:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D

第一條FROM,指定使用哪個鏡像源

RUN 指令告訴docker 在鏡像內執行命令,安裝了什麼。。。

然後執行如下命令構建鏡像:

docker build -t runoob/centos:6.7 .
  • -t :指定要創建的目標鏡像名

  • . :Dockerfile 文件所在目錄,可以指定Dockerfile 的絕對路徑

使用 nginx 鏡像

docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs  -d nginx
  • -p 80:80:將容器的80端口映射到主機的80端口

  • --name mynginx:將容器命名爲mynginx

  • -v $PWD/www:/www:將主機中當前目錄下的www掛載到容器的/www

  • -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:將主機中當前目錄下的nginx.conf掛載到容器的/etc/nginx/nginx.conf

  • -v $PWD/logs:/wwwlogs:將主機中當前目錄下的logs掛載到容器的/wwwlogs

 

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