抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

amazon-linux 安装

1
2
3
4
5
6
# 安装(amazon linux)
$ sudo amazon-linux-extras install docker
# 启动 Docker 服务。
$ sudo service docker start
# ec2-user 添加到 docker
$ sudo sudo usermod -a -G docker ec2-user

Install Docker Engine on CentOS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 先把旧的卸载,如果有安装的话
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 安装yum-utils
$ sudo yum install -y yum-utils
# 添加docker的软件仓库
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 安装docker
$ sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 启动docker
$ sudo systemctl start docker
# 验证docker
$ sudo docker run hello-world
# 开机启动docker
$ sudo systemctl enable docker

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 查看镜像
$ docker images
# REPOSITORY镜像的仓库源 TAG镜像的标签 IMAGEID镜像的ID CREATED镜像创建时间 SIZE镜像大小
# 参数 -a:列出本地所有镜像 -q:只显示镜像id --digests:显示镜像的摘要信息


# 搜索镜像
$ docker search nginx
#参数 --filter=stars=50:列出收藏数不小于指定值的镜像。


# 拉取镜像
$ docker pull nginx
# 指定版本
$ docker pull nginx:latest


# 删除镜像
$ docker rmi nginx
$ docker rmi nginx mysql
$ docker rmi (docker images -qa)
# 参数 -f:强制删除

# 启动
$ docker run -p 80:80 --name nginx -d nginx
# 参数
# --name:名称 -p:映射宿主机端口 -v:目录挂载
# -i:交互式操作 -t:终端 -d:后台运行 bash:命令
# --restart always 自启

# 退出
$ exit #停止
ctrl+P+Q #不停止


#进入(已运行)
$ docker exec -it nginx bash


#查看运行中的容器
$ docker ps
# -a:全部 -l:最近创建的容器 -n=x:最近创建的x个容器 -q:只显示id

#查看容器详细信息
$ docker inspect nginx
$ docker update --restart = always 容器id
# 启动、重启、停止、强制停止
$ docker start nginx
$ docker restart nginx
$ docker stop nginx
$ docker kill nginx

# 删除容器
$ docker rm id
$ docker rm -f $(docker ps -a -q)

NGINX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
$ mkdir -p config/conf.d logs www
$ vim nginx.conf
##################### nginx.conf #####################
user nginx;
worker_processes 1;

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

events {
worker_connections 1024;
}

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;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;
#gzip on;

include /etc/nginx/conf.d/*.conf;
}

##################### default.conf #####################
$ vim config/conf.d/default.conf
server {
listen 80;
server_name localhost;

#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}

# docker run
# 只开放80和443端口,没有特殊需求建议用主机模式
$ docker run \
--name nginx \
-p 80:80 \
-p 443:443 \
-v /root/nginx/config/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/config/conf.d:/etc/nginx/conf.d \
-v /root/nginx/logs:/var/log/nginx \
-v /root/nginx/www:/usr/share/nginx \
-v /root/nginx/cer:/etc/nginx/cer \
-d nginx


# 网络:主机模式
$ docker run \
--name nginx \
--network=host \
--restart always \
-v /root/nginx/config/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/config/conf.d:/etc/nginx/conf.d \
-v /root/nginx/logs:/var/log/nginx \
-v /root/nginx/www:/usr/share/nginx \
-v /root/nginx/cer:/etc/nginx/cer \
-d nginx

Dockerfile

Python 项目

./Dockerfile

1
2
3
4
5
6
FROM python
WORKDIR /server
ADD . /server
EXPOSE 9901
RUN pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
CMD python3 manage.py runserver 0.0.0.0:9901

docker build -t nginx:v3 .

build&run

1
2
3
4
5
docker stop dj
docker rm dj
docker rmi $(docker images | grep django-scraper)
echo $DOCKER_PASSWORD | docker login --username $DOCKER_USERNAME --password registry.cn-guangzhou.aliyuncs.com
docker run -d -p 9902:9901 --name dj $image

删除旧的 image

1
docker rmi $(docker images | grep django-scraper)

-f 指定 dockerfile

docker build -t tt-api:v1 -f Dockerfile-api .

docker-compose 文件配置

  • build

    1
    2
    3
    4
    version: '2'
    services:
    webapp:
    build: ./dir

    或者

    1
    2
    3
    4
    5
    6
    7
    8
    version: '2'
    services:
    webapp:
    build:
    context: ./dir
    dockerfile: Dockerfile-alternate
    args:
    buildno: 1

docker-compose 命令

1
2
3
4
5
6
7
8
9
10
11
#安装
$ sudo pip install docker-compose

$ docker-compose up
# 若是要后台运行: $ docker-compose up -d
# 若不使用默认的docker-compose.yml 文件名:
$ docker-compose -f server.yml up -d
#更新yml并启动
$ docker-compose up -d
#更新
$ docker-compose up -d --build

评论