docker入门基础

贴图一张 


 

pull nginx 镜像:docker pull nginx(等效于nginx:latest)
docker pull alpine
docker pull mysql:8.0.30
docker pull openjdk:8-jdk-alpine
docker pull nginx:stable-perl

docker run -dit (-d 指定后台运行,-it指定阻塞运行,防止断掉)
docker run -d -p 100:80 <name> 

docker run -v /lanren312/docker-workspace/nginx/html/:/lanren312/docker-workspace/nginx/html/ -it -m 512M -p 9001:9001--restart always -d --name=monkey monkey:latest

docker run --restart=always -d -it --name=nginx-lanren312 -p 8085:80 -v /home/admin/app:/usr/data nginx:stable-perl

[root@bigMonkey ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               stable-perl         6b284568a8ff        12 days ago         188MB

(注:nginx:stable-perl 是Nginx的版本根据自己的版本进行更改,如何输入错误可能会导致在次拉取镜像)
-v,将容器内的/usr/data挂载到宿主机的/home/admin/app。以后jar包有更新,丢到宿主机的/home/admin/app,然后重启容器即可。
--name给容器起一个别名,以后可以通过这个别名管理此容器
8085端口去映射内部的80端口,把宿主机的8085端口映射到nginx容器的80端口
## 本地安装过nginx端口用的80,所以这里用了8085代替
docker run --name lanren312-nginx -p 8085:80 -d nginx:stable-perl
docker run --name lanren312-nginx1.23.1 -p 8086:80 -d nginx:1.23.1

apt-get update		#更新包管理
apt-get install vim -y   #安装vim

[root@bigMonkey conf]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
9090a4bfacd1        nginx:1.23.1        "/docker-entrypoint.…"   5 seconds ago       Up 3 seconds        0.0.0.0:8086->80/tcp       lanren312-nginx1.23.1
1d3de5c3e1ca        nginx:stable-perl   "/docker-entrypoint.…"   28 minutes ago      Up 28 minutes       0.0.0.0:8085->80/tcp       lanren312-nginx

1、常用命令

删除容器:docker rm -f <container id(不用打全,前缀区分)>
删除镜像:docker rmi <name> 
查看日志:docker logs -f --tail=1000 <container id(不用打全,前缀区分)>

docker日志文件地址 /var/lib/docker/containers/{container_id}/

docker exec -it 3b9c /bin/bash  # 通过容器 别名/id 进入容器

docker ps
docker ps -l     ## 最后一个运行的容器(无论该容器目前处于什么状态)
docker ps -n     ## 数量x:显示最后 x 个运行容器,当x为1时和 -l 含义相同。(无论该容器目前处于什么状态),用于快速查找最近运行的容器
docker ps -a     ## 当前服务器中所有的容器,无论是否在运行..


## 配置nginx后,重启容器
docker stop 9090a4bfacd1
docker start 9090a4bfacd1
[root@bigMonkey ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
12effc08621d        mysql               "docker-entrypoint.s…"   36 hours ago        Created                                        mysql-test
a60d2b075681        alpine              "/bin/sh"                2 days ago          Up 2 days                                      angry_goldstine

CONTAINER ID:每个容器的唯一标识符号,自动生成。类似于数据库中的主键
IMAGE :创建容器使用的镜像名称。
COMMAND:运行容器时的命令。
CREATED:容器创建的时间。
STATUS:容器的运行状态,Up 2 days 指容器已运行2天。
-created(已创建)
-restarting(重启中)
-running(运行中)
-removing(迁移中)
-paused(暂停)
-exited(停止)
-dead(死亡)
PORTS:容器开放的端口信息。
NAME:容器的别名,在运行容器执行docker run 时可使用 --name进行指定

2、Dockerfile常用命令

FROM        ## 表示基础镜像,即运行环境
WORKDIR     WORKDIR /app     ### 运行在哪个路径下
COPY        COPY src /app    ### 将宿主机上的文件拷贝到镜像中 
RUN         RUN echo 321 >> 1.txt ### 运行shell语句 
CMD         ### 指定起来的脚本

ADD
ENRTYPOINT
	ENTRYPOINT非json,则以ENTRYPOINT为准;
	如果ENTRTYPOINT和CMD都是json,则ENTRYPOINT+CMD拼接
EXPOSE  ### 指定当前镜像暴露的端口号
VOLUME  /a/b  ###  指定映射文件,把容器中的/a/b映射到宿主机的目录下

 3、Dockerfile文件格式 

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD heroes.jar docker-heroes.jar
ENTRYPOINT ["java","-Xms800m","-Xmx800m","-XX:MetaspaceSize=512m","-XX:MaxMetaspaceSize=800m","-Dlog4j2.formatMsgNoLookups = true", "-jar","/docker-heroes.jar"]

4、start.sh运行脚本

cd /lanren312/docker/heroes    # 存放Dockerfile的文件夹
docker build -t heroes.        # 指定镜像名称,(.)点表示dockerfile文件位于当前目录下
docker stop heroes | true      # 停止容器
docker rm heroes | true        # 删除容器
docker run -v /data/vue/heroes/:/data/vue/heroes/ -it -m 512M -p 9210:9210--restart always -d --name=heroes heroes:latest

5、删除为空的镜像

1、查询所有的none镜像
docker images  | grep none

2、查询所有的none镜像的id
docker images  | grep none | awk '{print $3}'

3、删除所有的none镜像
docker images  | grep none | awk '{print $3}' | xargs docker rmi

6、docker cp命令

Docker cp 命令 | 菜鸟教程

将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
docker cp /www/runoob 96f7f14e99ab:/www/

将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
docker cp /www/runoob 96f7f14e99ab:/www

将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
docker cp  96f7f14e99ab:/www /tmp/


## 将宿主机的 文件夹 拷贝到容器内 (ps: 容器id全称)
docker cp -a /data/vue/platform 9090a4bfacd1:/data/vue

7、docker日志存放目录

cd /var/lib/docker/containers,根据 CONTAINER ID 就能找到

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值