在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 


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容