在Ubuntu 中操作 Docker 学习

目的

1.一次镜像,平滑移动,镜像文件,保证了环境迁移的一致
2.解决了运行环境和配合问题的软件容易,方便做持续集成并有助于整体发布的容器虚拟化技术
3.容器虚拟技术

镜像(image),容器(container),仓库(repository)

使用 docker pull 将官方 ubuntu 镜像下载到本地:

https://blog.csdn.net/weixin_36586564/article/details/103820044

 mkdir -p /opt/nginx/{conf,conf.d,html,logs}--创建文件
 




http://192.168.109.128/root/testcicd.git

 D:\work\2021> docker cp .\cloudpc_cli_web\client\  \cloudpc_cli_web\client  


docker run --rm -v /home/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \
  --non-interactive \
  --executor "docker" \
  --docker-image alpine:latest \
  --url "http://192.168.109.128/" \
  --registration-token "mcwhQWtvmWNFyydr_98x" \
  --description "runner" \
  --tag-list "build" \
  --run-untagged="true" \
  --locked="false" \
  --access-level="not_protected"


docker exec -it gitlab-runner  gitlab-runner register -n \
  --url http://192.168.109.128/ \
  --registration-token mcwhQWtvmWNFyydr_98x\
  --executor docker \
  --tag-list=dockersock,ali-docker \
  --description "aliyun docker runner" \
  --docker-privileged=true \
  --docker-pull-policy="if-not-present" \
  --docker-image "docker:latest" \
  --docker-volumes /var/run/docker.sock:/var/run/docker.sock \
  --docker-volumes $HOME/.m2:$HOME/.m2 

vim /home/gitlab/config/gitlab.rb


ubuntun 手动 操作 docker-compose


docker pull ubuntu 

docker imgages--查看镜像



如果容器存在且运行需要 停止容器 删除容器 删除镜像
$ docker stop <容器 ID> 
$ docker rm -f  <容器 ID>  --删除容器
$ docker rmi hello-world --删除镜像


进入容器
docker exec -it $id bash
删除进行
docker rmi --容器

nginx 默认配置:
cd /usr/share/nginx/html
cd /etc/nginx/conf.d/default.conf

sudo docker-compose up -d  停止并删除原有的镜像,并使用系统中原有的镜像,结合 docker-compose.yml 中的新配置来 生成一个新的镜像,提供服务。

sudo docker run -it -p 8082:80 client-build /bin/bash //启动容器并进入
docker run -d -p 80:80 nginx--运行容器
(1)–name:确定容器的名字。
(2)-d 指定容器是后台运行。
(3)-p 容器暴露端口号
it指的是啥
-i:以交互模式运行容器
-t:为容器重新分配一个伪输入终端

docker ps 查看运行的容器

# 简化删除
docker rmi 镜像名:版本
docker image rm 镜像名:版本或者id标识 # docker image rm mysql:8.0.27
docker image rm -f 镜像名:版本或者id标识 # 强制删除
docker run -d -p 8080:8080 --name 容器名称 

curl https://www.example.com --模拟get请求

docker run -it 和 docker exec -it
docker run -it imageID [cmd]

这个是用镜像产生一个容器,并且和cmd程序做交互

-i表示交互式的,表示[cmd]是一个有用户输入的程序,比如/bin/bash  和 python 等等。

-t 产生一个终端。

所以说有-i就必须有-t,不然怎么输入呢

docker exec -it imageID cmd
这个是在正在运行容器中运行cmd程序,所以cmd是不能省略的。
-it和上面的道理是一样的。


案例

项目client-pc
client-pc=>default.conf  docker-compose.yml  Dockerfile  index.html  nginx.conf  package.json  public  src

default.conf 内容用于 配置nginx:
server {
    listen 80;
    server_name _;//任何
    access_log /var/log/nginx/access.log main;
    error_log /var/log/nginx/error.log;
    root /public;//目录
    index index.html;//启动文件
    location / {
        try_files $uri /index.html;//可配置代理
        }
}

nginx.conf
user  nginx;
worker_processes  2;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    use epoll;
    worker_connections  65535;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    server_tokens off;
    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  15;

    gzip  on;

    include /etc/nginx/conf.d/*.conf;
}
Dokerfile 文件:


FROM node-14-base as glup
WORKDIR /client

COPY  package.json  .
COPY . .
RUN npm install && npm run build

FROM nginx:latest as build

COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf

COPY --from=glup /client/dist/index.html /public/
COPY --from=glup /client/dist/ /public/

LABEL SERVICE_NAME="hello-weiste"

EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

docker-compose.yml 文件
version: '3'

services:
  client-build:
    image: client-build
    build:
      context: .
      dockerfile: Dockerfile
      args:
        NPM_REGISTRY: http://172.16.98.219:12000
        REGISTRY_HOST: in.registry.xiongmaozhanggui.com
        BUILD_ARG: build

    ports:
      - 8082:80
    network_mode: bridge
    
    
在 client-pc 目录下执行 sudo docker-compose up -d 


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容