启动交互环境

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

下载镜像

docker pull 镜像名

#查找镜像
docker search 镜像名

#创建镜像
Dockerfile
https://yeasy.gitbooks.io/docker_practice/image/build.html

docker build

以进程方式运行docker

docker run -d ubuntu:18.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
输出 919bd55583f6293b6c53f471ca7c2f41eded7532c192cb86bdb11cf907452714
这个长字符串叫做容器ID,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么。
首先,我们需要确认容器有在运行,可以通过 docker ps 来查看

查看正在运行的 docker

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
919bd55583f6 ubuntu:18.10 "/bin/sh -c 'while t…" 3 minutes ago Up 3 minutes crazy_almeida

#查看docker 运行的日志
docker logs 919bd55583f6
...
hello word!
...
docker logs crazy_almeida
-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。

#停止 docker
docker stop amazing_cori

#我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。
runoob@runoob:~# docker pull training/webapp # 载入镜像
runoob@runoob:~# docker run -d -P training/webapp python app.py

查看 运行中的docker端口号

docker port 进程号
docker port 名字

查询最后一次创建的容器:

docker ps -l

开启一个已经创建的docker

docker start 名字/进程号

#使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。
runoob@runoob:~$ docker inspect wizardly_chandrasekhar
[
{
"Id": "bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85",
"Created": "2018-09-17T01:41:26.174228707Z",
"Path": "python",
"Args": [
"app.py"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 23245,
"ExitCode": 0,
"Error": "",
"StartedAt": "2018-09-17T01:41:26.494185806Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
......

列出本机的所有的镜像

docker images

#docker 副本
docker commit -m="has update" -a="runoob" 容器id xiaxichen/ubuntu:v2

#docker inspect : 获取容器/镜像的元数据。
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
OPTIONS说明:
-f :指定返回值的模板文件。
-s :显示总的文件大小。
--type :为指定类型返回JSON。

获取正在运行的容器mymysql的 IP。
runoob@runoob:~$ docker inspect --format='{
}{}{}' mymysql
172.17.0.3

#查看容器ip
docker inspect redis | grep IPAddress

docker commit -m 'captcha' -a 'xiaxichen' -p [容器id] [repository]
docker commit -m 'captcha' -a 'xiaxichen' 6354518dadf4 captcha_ckn

#commit 提交第一次
docker run -d -p 19952:19952 captcha_ckn /bin/sh -c "/home/captcha/captcha_platform_tornado"
#commit 提交第二次
docker run -d -p 19952:19952 captcha_ckn1

sudo docker run -itd ubuntu:14.04 /bin/bash
比如这里,我们将java8的镜像保存为文件
docker save -o java8.tar lwieske/java-8
完成后通过 ls 命令即可看到文件

从文件载入镜像可以使用Docker load命令。
docker load --input 文件
docker load < 文件名

进入docker
sudo docker attach

Q.E.D.


重剑无锋 大巧不工