您的位置:首页 > 运维架构 > Docker

docker常用命令

2017-09-15 00:00 369 查看

镜像常用命令

搜索镜像:docker search java
下载镜像:docker pull java
列出已下载镜像:docker images
删除本地镜像:docker rmi java
删除所有镜像:docker rmi -f $(docker images)
f表示强制删除

容器常用命令

-d 表示后台运行
-P 表示随机端口映射(大写)
-p 指定端口映射(小写·)
--network 指定网络模式
--network=bridge: 表示连接到默认网桥
--network=host: 容器使用宿主机的网络
--network=container:NAME_or_ID 告送docker让新建容器使用已有容器的网络配置
--network=none: 不配置该该容器网络,用户可自定义网络配置
例子:
docker run -d -p 91:80 nginx (后台运行,宿主机端口91映射容器端口80)

列出容器
docker ps
列出在运行的容器
docker ps -a
停止容器
docker stop 784fkjhg654
强制停止容器
docker kill 784fkjhg654
启动停止的容器
docker start 784fkjhg654
重启容器
docker restart 784fkjhg654
进入容器
docker attach 784fkjhg654
删除容器
docker rm 784fkjhg654
删除未运行的容器
docker rm $(docker ps -a -q)
删除所有容器
docker rm -f $(docker ps -a -q)

搭建私有仓库

首先在136机器上下载registry镜像
docker pull registry

下载完之后我们通过该镜像启动一个容器
docker run -d -p 5000:5000 registry

默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/tmp/registry下,
如下:
docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry

修改镜像的tag
docker tag busybox 192.168.112.136:5000/busybox

把打了tag的镜像上传到私有仓库
docker push 192.168.112.136:5000/busybox

从仓库拿镜像
docker pull 192.168.112.136:5000/busybox

上传下载出现https与http错误时 在/etc/docker/目录下加入daemon.json文件(10.0.10.60仓库ip)
{ "insecure-registries":["10.0.10.60:5000"] }

查看docker运行状态的方法:
sudo service docker status

打开/关闭/重启docker服务:
sudo service docker start/stop/restart

启动容器

只需使用以下命令即可启动容器:
docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

使用exit命令

创建 Java Web 镜像
docker commit 57c312bbaad1 testdocker:0.1

启动docker容器内部脚本
docker run -d -p 58080:8080 --name javaweb testdocker:0.1 /root/run.sh
执行后本地暴露58080端口对应容器内部8080端口 ,testdocker为镜像名 0.1版本 /root/run.sh是容器内部要执行的shell脚本
-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
--name:表示容器名称,用一个有意义的名称命名即

docker compose

安装
curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
为安装脚本添加执行权限
chmod +x /usr/local/bin/docker-compose

利用compose运行已有镜像 docker-compose.yml
version: '2'
services:
eurekaserver1:
image: 10.0.10.60:5000/eurekaserver:0.0.1
restart: always
ports:
- "8761:8761"

eurekaserver2:
image: 10.0.10.60:5000/eurekaserver:0.0.1
restart: always
ports:
- "8762:8761"

利用compose运行Dockerfile生成镜像再运行 docker-compose.yml
version: '2'
services:
eurekaserver1:
bulid: . (Dockerfile地址)
ports:
- "8761:8761"

运行
docker-compose up

查看容器运行状态
docker-compose ps

停止指定容器
docker-compose kill eureka

删除指定容器
docker-compose rm eureka

启动已存在的容器
docker-compose start eureka

停止已运行的容器
docker-compose stop rereka
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: