基本命令
- 啟動(dòng)容器
$ docker run IMAGE [COMMAND] [ARG...]
run
在新容器中執(zhí)行命令
docker@default:~$ docker run ubuntu echo 'hello world'
hello world
- 啟動(dòng)交互式容器
$ docker run -i -t IMAGE /bin/bash
-i --interactive = true | flase
默認(rèn)flase
-t --tty = true |false
默認(rèn)false
docker@default:~$ docker run ubuntu echo 'hello world'
hello world
docker@default:~$ docker run -i -t ubuntu /bin/bash
root@ac47353cb6f7:/# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 13:50 pts/0 00:00:00 /bin/bash
root 9 1 0 13:51 pts/0 00:00:00 ps -ef
root@ac47353cb6f7:/# exit
exit
- 查看容器
$ docker ps [-a] [-l]
不帶-a -l
參數(shù):查看運(yùn)行中的容器
-a
查看所有容器
-l
查看最新容器
$ docker inspect [CONTAINER ID]/[NAMES]
docker@default:~$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ac47353cb6f7 ubuntu "/bin/bash" 2 minutes ago Exited (0) 2 minutes ago mystifying_swirles
docker@default:~$ docker instect ac47353cb6f7
- 自定義容器名
NAMES
docker run --name=自定義名 -i -t /bin/bash
- 重新啟動(dòng)停止的容器
docker start [-i] CONTAINER ID / NAMES
- 刪除容器
docker rm CONTAINER ID / NAMES
守護(hù)式容器
- 已守護(hù)形式啟動(dòng)容器
docker run -i -t IMAGE /bin/bash
啟動(dòng)后通過組合鍵ctrl P + ctrl Q
退出容器虚倒,此時(shí)容器還是運(yùn)行,通過docker attach CONTAINETID / NAMES
從新進(jìn)入容器寓免。 - 啟動(dòng)守護(hù)式容器
docker run -d IMAGE
[COMMAND] [ARG...] - 查看容器日志
$docker logs [-f] [-t] [--tail] CONTAINER ID / NAMES
-f
--follows=true | false 默認(rèn)false ,持續(xù)輸出日志
-t
--timestamps=true | false 默認(rèn)false ,時(shí)間格式輸出日志
--tail
[number] 輸出日志條數(shù) - 查看容器進(jìn)程
docker top CONTAINER ID / NAMES
- 在運(yùn)行中的容器內(nèi)啟動(dòng)新進(jìn)程
docker exec [-d] [-i] [-t] CONTAINER ID / NAMES [COMMAND][AGR...]
- 停止守護(hù)式容器
docker stop CONTAINER ID / NAMES
發(fā)出通知容器停止信號(hào)狈孔,等待容器停止并返回容器名
docker kill CONTAINER ID / NAMES
直接停止容器返回容器名
在容器中部署靜態(tài)網(wǎng)站
- 設(shè)置容器的端口映射
run [-P] [-p]
-P --publish-all = true | false 默認(rèn)false
$docker run -P -i -t ubuntu /bin/bash
-p --publish=[]
containerPort
容器端口
$docker run -p 80 -i -t ubuntu /bin/bash
hostPort:containerPort
主機(jī)端口:容器端口
$docker run -p 8080:80 -i -t ubuntu /bin/bash
ip:containerPort
IP:容器端口
$docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
ip:hostPort:containerPort
IP:主機(jī)端口:容器端口
$docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash
- Nginx部署流程
- 創(chuàng)建映射80端口的交互式容器
$ docker run -p 80 --name=web -i -t ubuntu /bin/bash
- 安裝nginx
- 創(chuàng)建映射80端口的交互式容器
$ apt-get update
$ apt-get install -y nginx
- 安裝vim
$ apt-get install -y vim
- 創(chuàng)建靜態(tài)頁面
$ vim /var/www/html/index.html
<html>
<body>
<h1>Hello World</h1>
<body>
</html>
- 修改Nginx配置文件
vim /etc/nginx/sites-enabled/default
把root /var/www/html
- 運(yùn)行Nginx
/etc/init.d/nginx start
通過ctrl P + ctrl Q
退出容器
docker@default:~$ docker port web
80/tcp -> 0.0.0.0:32768
可以看出容器的80端口映射到主機(jī)的32768端口
- 驗(yàn)證網(wǎng)站訪問
docker@default:~$ curl http://127.0.0.1:32768
<html>
<body>
<h1>Hello World</h1>
<body>
</html>
查看和刪除鏡像
- 查看鏡像
docker image [-a] [-q] [--no-trunc] [REPOSITORY]
- 查看鏡像詳細(xì)信息
docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
- 刪除鏡像
docker rmi [-f] [--no-qrune] IMAGE[IMAGE...]
獲取和推送鏡像
- 查找鏡像
docker search CONTAINER
- 拉取鏡像
docker pull CONTAINER[:TAG]
- 推送鏡像
docker push NAME[:TAG]
構(gòu)建鏡像
- 使用
commit
構(gòu)建鏡像
$ docker commit [-a] [-m] [-p] CONTAINER [REPOSITORY[:TAG]]
-a --author='' # 作者
-m --message='' # 描述信息
-p --pause=true # 暫停容器提交
- 使用DockerFile文件構(gòu)建鏡像
1珠插、創(chuàng)建DockerFile
文件
2、使用docker build [--force-rm] [--no-cache] [--pull] [-q] [--rm] [-t] PATH | URL
命令
docker@default:~$ mkdir -p dockerfile/df_test1
docker@default:~$ cd dockerfile/df_test1
docker@default:~/dockerfile/df_test1$ vi Dockerfile
# First dockerfile for test
FROM ubuntu:14.04
MAINTAINER weixf "709504134@qq.com"
RUN apt-get update
RUN apt-get install -y nginx
EXPOSE 80
docker@default:~/dockerfile/df_test1$ docker build -t='test/df_test1' .
命令 | 用途 |
---|---|
FORM | base image |
MAINTAINER | 維護(hù)著 |
RUN | 執(zhí)行命令 |
ADD | 添加文件 |
COPY | 復(fù)制文件 |
CMD | 鏡像入口 |
EXPOSE | 暴露端口 |
WORKDIR | 指定路徑 |
ENV | 設(shè)定環(huán)境變量 |
ENTRYPOINT | 容器入口 |
USER | 指定用戶 |
VOLUME | mount point |
共享文件夾
docker run -v 宿主機(jī)文件路徑:虛擬機(jī)文件路徑 nginx