-
获取镜像
sudo docker pull NAME[:TAG]
命令示例
sudo docker pull centos:latest
-
启动Container盒子
sudo docker run [OPTION] IMAGE [COMMAND] [ARG..]
命令示例
sudo docker run -t -i centos /bin/bash
-
查看镜像列表,l列出本地所有image
sudo docker images [OPTION] [NAME]
命令示例
sudo docker images
-
查看所有容器列表,列出本地所有Container
sudo docker ps [OPTION] [NAME]
命令示例
查看所有运行中或停止运行的容器
sudo docker ps -a
-
删除本地已下载的镜像
sudo docker rmi [IMAGE] [IMAGE..]
命令示例
sudo docker rmi centos:latest
-
移除一个或多个容器实例
sudo docker rm [OPTION] [CONTAINER] [CONTAINER..]
命令示例
移除所有未运行的容器
sudo docker rm sudo docker ps -aq
-
停止一个正在运行的容器
sudo docker kill [OPTION] [CONTAINER] [CONTAINER..]
命令示例
sudo docker kill 062e
-
停止一个正在运行的容器
sudo docker kill [OPTION] [CONTAINER] [CONTAINER..]
命令示例
sudo docker kill 062e
-
重启一个正在运行的容器
sudo docker restart [OPTION] [CONTAINER] [CONTAINER..]
命令示例
sudo docker restart 062e
-
启动一个已经停止的容器
sudo docker start [OPTION] [CONTAINER] [CONTAINER..]
命令示例
sudo docker start 062e
小示例
下载centOs镜像
sudo docker pull centos:latest
让centOs镜像启动一个Container ,让控制台输出一行hello world
sudo docker run centos /bin/echo "hello world"
每秒打印一个 “hello world”
sudo docker run -i -t centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
-i 表示同步Container的stdin , -t 表示分配一个伪终端
sudo docker ps
返回以下
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
456a3684b5b9 centos "/bin/sh -c 'while..." About an hour ago Up 43 seconds peaceful_wilson
8de2a4b35529 centos "/bin/bash" About an hour ago Up 9 minutes tender_hamilton
73fdeccb369b gitlab/gitlab-runner:latest "/usr/bin/dumb-ini..." 2 hours ago Up About an hour gitlab-runner
文件卷标加载
将本机的/etc目录挂载到Container的/opt/etc下面,并且打印Container的/opt/etc目录
docker run --rm=true -i -t --name=ls-volume -v /etc/:/opt/etc/ centos ls /opt/etc
参数-v 后面冒号左侧部分是本地主机路径,冒号右侧部分是对应Container的路径, --rm=true
表示这个Container运行结束后自动删除
将多个Container盒子连接起来
启动redis镜像的Container,开始redis-server持久化服务,
sudo docker run --name redis-server -d redis redis-server --appendonly yes
然后启动一个Redis镜像Container作为客户端,连接刚才启动的redis-server
sudo docker run --rm=true -it --link redis-server:redis redis /bin/bash
执行完命令就进入了Container内部的bash,可以直接执行一些Linux命令
root@4ebc21daee94:/data# env
打印环境变量
REDIS_ENV_REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-4.0.2.tar.gz
REDIS_PORT_6379_TCP_PROTO=tcp
HOSTNAME=4ebc21daee94
REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-4.0.2.tar.gz
TERM=xterm
REDIS_NAME=/focused_booth/redis
REDIS_PORT_6379_TCP_ADDR=172.17.0.4
REDIS_ENV_REDIS_DOWNLOAD_SHA=b1a0915dbc91b979d06df1977fe594c3fa9b189f1f3d38743a2948c9f7634813
REDIS_PORT_6379_TCP_PORT=6379
REDIS_ENV_GOSU_VERSION=1.10
REDIS_DOWNLOAD_SHA=b1a0915dbc91b979d06df1977fe594c3fa9b189f1f3d38743a2948c9f7634813
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/data
REDIS_PORT_6379_TCP=tcp://172.17.0.4:6379
SHLVL=1
HOME=/root
REDIS_PORT=tcp://172.17.0.4:6379
REDIS_VERSION=4.0.2
REDIS_ENV_REDIS_VERSION=4.0.2
GOSU_VERSION=1.10
_=/usr/bin/env
redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"
参考资料
书籍:《Node.js实战 第二季》
Docker —— 从入门到实践
网友评论