04 Docker命令大全

Docker命令大全

#查看Docker版本信息  
docker version  

#查看当前运行的Docker容器  
docker ps  

#运行一个Docker容器  
docker run [选项] 镜像名称:tag  

#停止一个正在运行的Docker容器  
docker stop <容器ID>  

#启动一个已停止的Docker容器  
docker start <容器ID>  

#删除一个Docker容器  
docker rm <容器ID>  
docker rm -f <容器ID>    强制

#拉取一个Docker镜像  
docker pull <镜像名称:tag>  

#列出所有本地的Docker镜像  
docker images  

#删除一个本地Docker镜像  
docker rmi <镜像ID>  

#进入正在运行的Docker容器的终端  
docker exec -it <容器ID> /bin/bash

安装docker

# Docker 要求 CentOS 系统的内核版本高于 3.10
 uname -r
 
# 卸载docker
yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-engine

#安装依赖设置yum仓库
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
    
安装docker
yum install docker-ce docker-ce-cli containerd.io

启动
systemctl start docker
加入开机启动
systemctl enable docker

验证是否安装成功
docker version
docker run hello-world

docker基本命令

官方镜像查找地址:

https://hub-stage.docker.com/search?image_filter=official&q=

#拉取镜像
docker pull [options] NAME[:TAG]
name是拉取镜像的名称,:TAG表示是可选的,如果不选表明时latest,如果选择表明是指定版本的


#查看镜像
docker images [options] [REPOSITORY[:TAG]]

#运行
docker run [options] IMAGE[:TAG] [COMMAND] [ARG..]
docker run ubuntu:15.10 /bin/echo "Hello world"

#运行交互式的容器
docker run -i -t ubuntu:15.10 /bin/bash

#镜像的导入和导出
docker save -o ubuntuback.tar mynginx:v1

doker load -i ubuntuback.tar
docker images

#复制宿主机的文件和文件夹到容器
docker cp a.txt mycentos4:/usr/local/myfile/

#复制容器的文件和文件夹到宿主机
docker cp mycentos4:/usr/local/myfile/a.txt  a.txt

#删除所有镜像
docker rmi `docker images -q`

#查看容器信息(包括ip)
docker inspect mycentos4

安装Ubuntu

#下载最新镜像
docker pull ubuntu
或
docker pull ubuntu:latest
docker pull ubuntu:20.04

#查看本地镜像
docker images

#运行容器,并且可以通过 exec 命令进入 ubuntu 容器
docker run -itd --name ubuntu-test ubuntu
docker exec -it ubuntu-test /bin/bash  退出后不会停止容器
docker attach ubuntu-test 退出后停止容器

#进入容器后查看ubuntu版本
uname -r 查看linux内核版本
cat /etc/lsb-release 查看ubuntu版本

#查看容器的运行信息
docker ps 运行中的容器
docker ps -a  所有的容器

安装Centos

#下载centos7镜像
docker pull centos:centos7

#查看本地镜像
docker images

#运行容器,并且可以通过 exec 命令进入 centos7-test 容器
docker run -itd --name centos7-test centos:centos7
docker exec -it centos7-test /bin/bash  退出后不会停止容器
docker attach centos7-test 退出后停止容器

#进入容器后查看centos版本
uname -r 查看linux内核版本
cat /etc/centos-release 查看centos版本

#查看容器的运行信息
docker ps 运行中的容器
docker ps -a  所有的容器

运行nginx镜像

#查看nginx的镜像有哪些
docker search nginx

#拉取官方的最新版本的镜像
docker pull nginx:latest

#查看本地镜像
docker images

#运行容器
docker run --name nginx-test -p 8080:80 -d nginx

#浏览器访问
http://192.168.145.128:8080/
  • –name nginx-test:容器名称。
  • -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
  • -d nginx: 设置容器在在后台一直运行。

运行mysql镜像

#查看mysql的镜像有哪些
docker search mysql

#拉取官方的最新版本的镜像
docker pull mysql:latest

#查看本地镜像
docker images

#运行容器
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

#查看容器
docker ps 运行中的容器
docker ps -a 所有的容器

#进入容器
docker exec -it mysql-test /bin/bash
mysql -h localhost -u root -p

#数据库访问
192.168.145.128 3306
root/123456

  • -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
  • MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

运行redis镜像

#查看redis的镜像有哪些
docker search redis

#拉取官方的最新版本的镜像
docker pull redis:latest

#查看本地镜像
docker images

#运行容器
docker run -itd --name redis-test -p 6379:6379 redis

#查看容器
docker ps 运行中的容器
docker ps -a 所有的容器

#进入容器
docker exec -it redis-test /bin/bash
redis-cli

#redis访问
192.168.145.128:6379

  • -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
  • MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

运行mongodb镜像

#查看mongo的镜像有哪些
docker search mongo

#拉取官方的最新版本的镜像
docker pull mongo:latest

#查看本地镜像
docker images

#运行容器
docker run -itd  -p 27017:27017 --name mongo-test mongo
或者
docker run -d -p 27017:27017 --name mongo-test mongo:latest

#查看容器
docker ps 运行中的容器
docker ps -a 所有的容器

#进入容器
docker exec -it mongo-test /bin/bash
mongosh --host 127.0.0.1 --port 27017


#停止容器和删除容器
docker stop mongo-test
docker rm mongo-test

#redis访问
192.168.145.128:6379

  • -d: 后台运行容器。
  • -p 27017:27017: 将主机的27017端口映射到容器的27017端口。
  • --name mongo-test: 为容器指定一个名字,这里是mongo-test,你可以根据需要更改。

创建自己的镜像

两种方法

  • 1、从已经创建的容器中更新镜像,并且提交这个镜像
  • 2、使用 Dockerfile 指令来创建一个新的镜像

通过提交镜像来创建新镜像

#使用官方镜像来创建一个容器
docker run -t -i --name ubuntu-test ubuntu:15.10 /bin/bash

#进入容器
docker exec -it ubuntu-test /bin/bash
apt-get update
exit

#提交这个镜像
docker commit -m="has update" -a="runoob" e218edb10161 xiewenyu/ubuntu:v2

使用新镜像创建一个容器
docker run -t -i -d xiewenyu/ubuntu:v2 /bin/bash

  • -m: 提交的描述信息
  • -a: 指定镜像作者
  • **e218edb10161:**容器 ID
  • runoob/ubuntu:v2: 指定要创建的目标镜像名

构建镜像

创建一个 Dockerfile 文件

FROM    centos:6.7
MAINTAINER      Fisher "fisher@sudops.com"

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 在镜像内执行命令,安装了什么。。。

使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。

docker build -t xiewenyu/mycentos:6.7 .
  • -t :指定要创建的目标镜像名
  • . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
docker run -t -i xiewenyu/mycentos:6.7  /bin/bash
id runoob

#设置镜像标签
docker tag 860c279d2fec xiewenyu/mycentos:dev

运行netcore6前后端分离项目【vol】

运行netcore后端api

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
#RUN apt-get update; apt-get install libfontconfig1 -y

WORKDIR /app
EXPOSE 9991
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["VOL.WebApi/VOL.WebApi.csproj", "VOL.WebApi/"]
COPY ["VOL.System/VOL.System.csproj", "VOL.System/"]
COPY ["VOL.Core/VOL.Core.csproj", "VOL.Core/"]
COPY ["VOL.Entity/VOL.Entity.csproj", "VOL.Entity/"]
COPY ["VOL.Demo/VOL.Demo.csproj", "VOL.Demo/"]
#COPY ["VOL.AppManager/VOL.AppManager.csproj", "VOL.AppManager/"]
COPY ["VOL.Builder/VOL.Builder.csproj", "VOL.Builder/"]
RUN dotnet restore "VOL.WebApi/VOL.WebApi.csproj"
COPY . .
WORKDIR "/src/VOL.WebApi"
RUN dotnet build "VOL.WebApi.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "VOL.WebApi.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "VOL.WebApi.dll"]
构建镜像
docker build -t xiewenyu/vol_webapi:v1 .

创建容器
docker run --name vol_webapi -v /etc/localtime:/etc/localtime -p 9526:9991 -d xiewenyu/vol_webapi:v1 

浏览器访问
http://192.168.145.128:9526/index.html

运行vue3项目

#生成项目
npm run build

在dist目录下添加Dockerfile和default.conf

default.conf

server {
	listen 80;
	server_name 127.0.0.1;
	
	location / {
		root /usr/share/nginx/html;
		index index.html index.htm;
		try_files $uri $uri/ /index.html =404;
	}
	
	error_page 500 502 503 504 /50x.html;
	location = /50x.html {
		root html;
	}
}

Dockerfile

FROM nginx

MAINTAINER publish vol

RUN rm /etc/nginx/conf.d/default.conf

ADD default.conf /etc/nginx/conf.d/

COPY . /usr/share/nginx/html/

构建镜像

docker build -t xiewenyu/vol_vue3:v1 .

创建容器
docker run --name vol_vue3 -v /etc/localtime:/etc/localtime -p 9527:80 -d xiewenyu/vol_vue3:v1 

搭建docker私有仓库

docker run -itd --name=myregistry -p 4000:5000 registry 

http://192.168.145.128:4000/v2/_catalog

在宿主机上
vi /etc/docker/daemon.json
添加
{"insecure-registries":["192.168.145.128:4000"]}

systemctl restart docker

标记此镜像为私有仓库的镜像
docker tag jdk1.8 192.168.145.128:4000/jdk1.8
上传标记的镜像
docker push 192.168.145.128:4000/jdk1.8
查看注册处的仓库有哪些
http://192.168.145.128:4000/v2/_catalog

另一台服务器上
在宿主机上
vi /etc/docker/daemon.json
添加
,"insecure-registries":["192.168.145.128:4000"]

docker pull 192.168.145.128:4000/jdk1.8

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值