docker安裝常用軟件
基礎(chǔ)知識
創(chuàng)建bridge網(wǎng)絡(luò)
docker network create web
查看數(shù)據(jù)卷
docker volume ls # 查看所有數(shù)據(jù)卷
docker volume inspect my-conf # 查看指定數(shù)據(jù)卷內(nèi)容
/var/lib/docker/volumes/my-conf/_data/ # 默認數(shù)據(jù)卷位置
指定鏡像,數(shù)據(jù)卷位置
vi /etc/docker/daemon.json # 重啟后數(shù)據(jù)卷默認位置就變成/mnt/docker-data了
{
"registry-mirrors": ["https://6gyvb655.mirror.aliyuncs.com"],
"data-root": "/mnt/docker-data"
}
或者
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --data-root='/home/docker'
# 修改鏡像 把原鏡像中的內(nèi)容拷貝過來
mv /var/lib/docker/image/* /mnt/docker-data/image
docker安裝php
介紹
php站點目錄 /root/web/html # 站點目錄要跟nginx一致
php:版本要選帶fpm的
mkdir -p /root/web/{html,conf}
docker run --name myphp7 --restart=always --network web -p9000:9000 -v /root/web/html:/www -d php:7.1.30-fpm
docker安裝nginx
介紹
nginx站點目錄 /root/web/html # 站點目錄要跟php一致
nginx配置文件目錄 /root/web/conf # 可以配置多個文件
mkdir -p /root/web/{html,conf}
docker run --name nginx --restart=always --network web -p 80:80 -v /root/web/html:/usr/share/nginx/html -v /root/web/conf:/etc/nginx/conf.d -d nginx
vim /root/web/conf/default.conf
server {
listen 80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
location ~ \.php$ {
fastcgi_pass myphp7:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
vim /root/web/html/index.php
<?php
phpinfo();
?>
訪問
10.0.0.13:80/index.php # nginx站點目錄沒index.php;時候
10.0.0.13:80 # nginx站點目錄有index.php;時候
docker安裝mysql
介紹
-e MYSQL_ROOT_PASSWORD=123456 # 指定root的密碼
/data/mysql/data/ # 數(shù)據(jù)目錄
/etc/mysql/my.cnf # 配置文件 # 文件my.cnf 注意這里映射到 /etc/mysql/conf.d/mysqld.cnf 不是/etc/my.cnf
準備工作
docker pull mysql
創(chuàng)建目錄
mkdir -p /data/mysql/data /data/mysql/conf
配置文件
vim /data/mysql/conf/my.cnf
[mysqld]
# innodb_buffer_pool_size = 128M
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
default-authentication-plugin=mysql_native_password
skip-host-cache
server_id=6
skip-name-resolve
port=3306
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
pid-file=/var/run/mysqld/mysqld.pid
lower_case_table_names=1
sql_mode='NO_AUTO_VALUE_ON_ZERO'
[client]
socket=/var/run/mysqld/mysqld.sock
啟動
docker run -d --restart=always --network web -e MYSQL_ROOT_PASSWORD=123456 --name mysql -v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /data/mysql/data/:/var/lib/mysql -p 3306:3306 mysql
docker安裝oracle 12c
掛載目錄加權(quán)限
mkdir -p /root/data_oracle/
chmod -R 777 /root/data_oracle/
啟動
docker run -d -p 8090:8080 -p 1521:1521 --name=oracle12c --restart=always --network web -v /root/data_oracle:/u01/app/oracle truevoly/oracle-12c
登錄
sqlplus system/oracle@//119.45.16.143:1521/xe
sqlplus sys/oracle as sysdba;
修改密碼:
alter user system identified by oracle;
alter user sys identified by sys;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
創(chuàng)建用戶
create user test identified by test;
并給用戶賦予權(quán)限
grant connect,resource,dba to test;
docker安裝redis
介紹
daemonize no # 在前臺運行 docker本身需要后臺運行,而這個配置選項也是以守護進程啟動,兩者會沖突 所以docker中必須是no
/root/redis/data/6379 # 數(shù)據(jù)目錄
/root/redis/conf/6379 # 配置文件目錄
appendonly no # 關(guān)閉AOF模式(默認關(guān)閉)
–appendonly yes 開啟持久化
docker pull redis
mkdir /root/redis/data/6379/ /root/redis/conf/6379/ -p
配置文件
vi /root/redis/redis.conf
bind 0.0.0.0
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /data/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
requirepass food
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
啟動
docker run -p 6379:6379 --name redis -v /root/redis/data/6379:/data -v /root/redis/conf/6379/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --appendonly yes
docker安裝FastDfs
準備工作
docker pull delron/fastdfs
mkdir -p /var/fdfs/tracker /var/fdfs/storage
tracker
docker run -d -p22122:22122 --restart=always --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
storage
docker run -d -p23000:23000 -p8888:8888 --restart=always --name storage --link tracker:tracker -e TRACKER_SERVER=tracker:22122 -v /var/fdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage
重啟storage
rm -rf /var/lib/docker/volumes/storage/_data/data/fdfs_storaged.pid # 先刪除PID文件
測試
cd /var/fdfs/storage # 宿主機的 /var/fdfs/storage映射到storage容器的 /var/fdfs中
# 上傳一張照片cumt.png
docker exec -it storage /bin/bash # 進入storage容器
cd /var/fdfs
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf cumt.png
訪問
http://120.48.58.217:8888/group1/M00/00/00/rBcAA2MOv62Af15cAADZcN96M7g358.jpg
docker安裝jar包
docker run -d -p 8888:8888 --name my-container -v /path/to/jar:/app.jar openjdk:8-jdk-alpine java -jar -Dserver.port=8888 /app.jar
docker安裝tomcat
介紹
鏡像下載要找支持linux的
https://hub.docker.com/_/tomcat/tags?page=5&ordering=-last_updated
直接指定目錄掛載會失敗,先用數(shù)據(jù)卷掛上再把數(shù)據(jù)卷的東西拷貝出來在啟動,或者直接修改數(shù)據(jù)卷目錄成指定了路徑,但是這樣的話之前下載的鏡像也會檢測不到
準備工作
docker pull tomcat:9.0.0.M10
mkdir -p /usr/app/tomcat/{webapps,conf,logs}
啟動
docker run -d -p 8080:8080 --name tomcat -v webapps:/usr/local/tomcat/webapps -v conf:/usr/local/tomcat/conf -v logs:/usr/local/tomcat/logs --restart=always tomcat:9.0.0.M10
docker run -d -p 8080:8080 --name tomcat -v /usr/app/tomcat/webapps:/usr/local/tomcat/webapps -v conf:/usr/local/tomcat/conf -v logs:/usr/local/tomcat/logs --restart=always tomcat:9.0.0.M10
docker安裝python
介紹
鏡像地址
https://hub.docker.com/_/python/tags?page=1&ordering=-last_updated
運行容器把 python腳本掛載進去,在容器中運行Python腳本或者 /entrypoint.sh 默認容器啟動執(zhí)行的腳本 ,最后commit保存安裝的內(nèi)容到鏡像
下載鏡像
docker pull python:3.4.1
mkdir -p /root/python/myapp # 這個目錄掛載到容器的/www下
vi /root/python/myapp/text.py # python腳本
#!/usr/bin/python
print("Hello, World!")
vi /root/python/myapp/start.sh # 啟動腳本
#!/bin/bash
python /www/text.py > /hello.log
tail -f /hello.log
chmod +x /root/python/myapp/start.sh # 腳本加上執(zhí)行權(quán)限
運行python
docker run -p 8000:8000 -d -v /root/python/myapp:/www --name python python /www/start.sh # 直接就執(zhí)行python腳本了
安裝完軟件保存鏡像
docker run -p 8000:8000 -itd -v /root/python/myapp:/www --name python python /bin/bash # 原始的自己配置
# /entrypoint.sh 默認容器啟動執(zhí)行的腳本
echo '#!/bin/bash' > /entrypoint.sh
echo 'python /www/text.py > /hello.log' >> /entrypoint.sh
echo 'tail -f /hello.log' >> /entrypoint.sh
docker commit 4931cfd2b692 python:3.7.4 # 安裝完軟件保存鏡像
docker安裝rabbitmq
docker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=root -e RABBITMQ_DEFAULT_PASS=root --restart=always --name rabbitmq rabbitmq:latest
docker 安裝 Django
制作鏡像
指定項目名mysite , 指定python版本python:3.7 ,指定 Django==3.2.12
django-admin startproject mysite #生成mysite目錄
cd mysite # 進入目錄
chmod +x init.sh
vi mysite/settings.py 修改 ALLOWED_HOSTS = ["*"]
vi dockerfile
FROM python:3.7 # 建立 python3.7 環(huán)境
MAINTAINER KXM # 鏡像作者
ENV PYTHONUNBUFFERED 1 # 設(shè)置 python 環(huán)境變量
COPY pip.conf /root/.pip/pip.conf # 設(shè)置pip源為國內(nèi)源
RUN mkdir -p /var/www/html/mysite # 在容器內(nèi)創(chuàng)建mysite文件夾
WORKDIR /var/www/html/mysite # 設(shè)置容器內(nèi)工作目錄
ADD . /var/www/html/mysite # 將當前目錄文件加入到容器工作目錄中(. 表示當前宿主機目錄)
RUN pip install -r requirements.txt # pip安裝依賴
CMD ["/bin/bash","init.sh"]
vi init.sh # 容器啟動運行的命令 CMD ["/bin/bash","init.sh"]
nohup python manage.py runserver 0.0.0.0:8000 &
vi pip.conf # 修改pip鏡像源
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
vi requirements.txt # 需要安裝django版本 pip install -r requirements.txt
Django==3.2.12
# 創(chuàng)建鏡像
chmod +x init.sh
docker build -t django:v1 .
運行
conf里 init.sh 放啟動命令 ,項目名定死了mysite, 沒創(chuàng)建app ,其他的都在當前路徑下 直接改就行了
# 啟動
docker run -it -d -p 88:8000 --name mysite -v conf:/var/www/html/mysite django:v1
#或者下載我打包好的鏡像
docker pull registry.cn-qingdao.aliyuncs.com/docker1314/django:v5
#訪問網(wǎng)址
10.0.0.11:88
docker安裝FTP
docker run --name nginx --restart=always -p 80:80 --user=root -v ftp1:/usr/share/nginx/html -v /root/web/conf:/etc/nginx/conf.d -d nginx:latest
docker run -d -v ftp1:/home/vsftpd/root/ -e FTP_USER=root -e FTP_PASS=123456 -e PASV_ADDRESS=172.16.155.232 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 -p 20:20 -p 21:21 -p 21100-21110:21100-21110 --name vsftpd fauria/vsftpd:latest
vi 80.conf
server {
listen 80;
server_name _;
client_max_body_size 1024M;
location / {
root /usr/share/nginx/html/; # 站點目錄
autoindex on; # 顯示目錄
charset utf-8,gbk; #展示中文文件名
autoindex_exact_size off; # 顯示文件大小M ,默認on 顯示字節(jié)數(shù)
autoindex_localtime on; # 顯示服務(wù)器時間
#autoindex_format json; # html、xml、json、jsonp 分別用這幾個風(fēng)格展示目錄
}
}
END
docker compose
介紹
官方文檔
https://docs.docker.com/compose/compose-file/
安裝docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
啟動
docker-compose up # 前臺啟動
docker-compose up -d # 后臺啟動
docker-compose -f docker-compose.yml up -d # 指定yaml文件啟動
docker-compose ps # 查看容器狀態(tài)
docker-compose stop # 停止
docker-compose restart # 重啟
docker-compose down # 強制刪除創(chuàng)建的容器不管運行沒運行 也會刪除創(chuàng)建的網(wǎng)卡
docker-compose rmi
docker-compose logs
docker-compose安裝常用軟件
新建一個空白目錄,例如wptest。新建一個docker-compose.yml
主意: 啟動mysql和redis要先編寫配置文件,nginx+php要配置nginx的配置文件,并且php的站點目錄要和nginx一致
version: "3"
services:
mysql:
environment:
MYSQL_ROOT_PASSWORD: "root"
image: "mysql:5.7"
container_name: mysql
networks:
- somenetwork
volumes:
- "${PWD}/mysql/data:/var/lib/mysql"
- "${PWD}/mysql/conf/my.cnf:/etc/mysql/my.cnf"
- "/etc/localtime:/etc/localtime"
ports:
- "3306:3306"
rabbitmq:
image: "rabbitmq:latest"
container_name: rabbitmq
environment:
- RABBITMQ_DEFAULT_USER=root
- RABBITMQ_DEFAULT_PASS=root
restart: always
depends_on:
- mysql
networks:
- somenetwork
ports:
- "15672:15672"
- "5672:5672"
redis:
image: "redis:latest"
container_name: redis
restart: always
networks:
- somenetwork
ports:
- 6379:6379
volumes:
- ${PWD}/redis/conf/redis.conf:/etc/redis/redis.conf:rw
- ${PWD}/redis/data/:/data:rw
- "/etc/localtime:/etc/localtime"
command:
# 執(zhí)行的命令
redis-server /etc/redis/redis.conf --appendonly yes
tomcat:
image: "tomcat:9.0.0.M10"
container_name: tomcat
restart: always
depends_on:
- mysql
volumes:
- "/home/tomcat/webapps:/usr/local/tomcat/webapps"
- "tomcat-conf:/usr/local/tomcat/conf"
- "/home/tomcat/logs:/usr/local/tomcat/logs"
- "/etc/localtime:/etc/localtime"
networks:
- somenetwork
ports:
- "8080:8080"
jar-bao:
image: registry.cn-qingdao.aliyuncs.com/docker1314/openjdk-8-ttf-dejavu:v1
container_name: jar-bao
restart: always
networks:
- somenetwork
volumes:
- ${PWD}/jar/jeecg-boot-module-system-3.1.0.jar:/app.jar
- ${PWD}/jar/logs:/logs
- "/etc/localtime:/etc/localtime"
- "${PWD}/jar/webapp:/app/lf_product_manage/data/webapp"
- "${PWD}/jar/upload:/app/lf_product_manage/data/upload"
environment:
- TZ=Asia/Shanghai
command: java -jar -Dserver.port=8888 /app.jar
# apk add --no-cache ttf-dejavu 添加字體
ports:
- "8080:8888"
nginx:
image: "nginx"
container_name: nginx
restart: always
volumes:
- "${PWD}/nginx/html:/usr/share/nginx/html"
- "${PWD}/nginx/ditu:/usr/share/nginx/ditu/ditu"
- "${PWD}/nginx/conf:/etc/nginx/conf.d"
- "${PWD}/nginx/logs:/var/log/nginx"
- "/etc/localtime:/etc/localtime"
networks:
- somenetwork
ports:
- "80:80"
php:
image: "php:7.1.30-fpm"
container_name: php
restart: always
volumes:
- "/home/nginx/html:/www"
- "/etc/localtime:/etc/localtime"
networks:
- somenetwork
ports:
- "9000:9000"
tracker:
image: "delron/fastdfs"
networks:
- somenetwork
container_name: tracker
volumes:
- "/home/fdfs/tracker:/var/fdfs"
- "/etc/localtime:/etc/localtime"
ports:
- "22122:22122"
command:
tracker
storage:
environment:
- TRACKER_SERVER=tracker:22122
- GROUP_NAME=group1
image: "delron/fastdfs"
networks:
- somenetwork
container_name: storage
volumes:
- "/home/fdfs/storage:/var/fdfs"
- "/etc/localtime:/etc/localtime"
ports:
- "23000:23000"
- "8888:8888"
command:
storage
networks:
somenetwork:
driver: bridge
volumes:
tomcat-conf:
# 啟動docker-compose 不需要創(chuàng)建網(wǎng)絡(luò)somenetwork會自動創(chuàng)建
# 容器內(nèi)互聯(lián) nginx: 和container_name: web 都能當域名用指向同一個地址
# 容器時間
- "/etc/localtime:/etc/localtime" 設(shè)置時間和服務(wù)器同步
- TZ=Asia/Shanghai 設(shè)置時區(qū)
# 當前路徑 ${PWD}
# 啟動停止
docker-compose -f docker-compose.yaml up -d
docker-compose -f docker-compose.yaml down
/home/nginx/conf/80.conf
server {
listen 80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
/home/redis/conf/redis.conf
bind 0.0.0.0
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /data/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
requirepass food
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
/home/mysql/conf/my.cnf
# 建庫
create database app;
# 創(chuàng)建業(yè)務(wù)用戶
create user admin@"%" identified by '123456';
grant all on app.* to admin@"%";
# 登錄
mysql -uadmin -p123456
vi my.cnf
[mysqld]
# innodb_buffer_pool_size = 128M
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
default-authentication-plugin=mysql_native_password
skip-host-cache
server_id=6
skip-name-resolve
port=3306
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
pid-file=/var/run/mysqld/mysqld.pid
lower_case_table_names=1
sql_mode='NO_AUTO_VALUE_ON_ZERO'
[client]
socket=/var/run/mysqld/mysqld.sock
參數(shù)解析
image鏡像
image: redis # 使用哪個鏡像
container_name容器名
container_name: rabbitmq # --name rabbitmq
command執(zhí)行命令
command: bundle exec thin -p 3000 # 啟動命令
links別名
links:
- db
- db:mysql
- redis:redis
使用了別名將自動會在容器的/etc/hosts文件里創(chuàng)建相應(yīng)記錄
- redis:red # redis是 services:標簽下的redis: ,red是它的別名
- db 默認 等于 - db:db
external_links別名同網(wǎng)段
external_links:
- redis_1
- project_db_1:mysql
- project_db_1:postgresql
鏈接搭配docker-compose.yml文件或者Compose之外定義的服務(wù),通常是提供共享或公共服務(wù)。格式與links相似
注意,external_links鏈接的服務(wù)與當前服務(wù)必須是同一個網(wǎng)絡(luò)環(huán)境。
ports容器外端口
ports:
- "3000"
- "8000:8000"
- "49100:22"
- "127.0.0.1:8001:8001"
expose容器內(nèi)端口
expose:
- "3000"
- "8000"
expose提供container之間的端口訪問,不會暴露給主機使用。同docker run --expose。
volumes掛載
volumes:
- /var/lib/mysql
- cache/:/tmp/cache
- ~/configs:/etc/configs/:ro
volumes_from
volumes_from:
- service_name
- service_name:ro
- container:container_name
- container:container_name:rw
掛載數(shù)據(jù)卷容器,掛載是容器。同docker run --volumes-from
container:container_name格式僅支持version 2。
environment環(huán)境變量
environment:
RACK_ENV: development
SESSION_SECRET:
environment:
- RACK_ENV=development
- SESSION_SECRET
添加環(huán)境變量。同docker run -e??梢允菙?shù)組或者字典格式
depends_on優(yōu)先啟動
depends_on:
- elasticsearch
- kibana
- redis
- logstash
用于指定服務(wù)依賴,一般是mysql、redis等。寫在mysql、redis服務(wù)里面
指定了依賴,將會優(yōu)先于服務(wù)創(chuàng)建并啟動依賴
extra_hosts主機名映射
extra_hosts:
- "somehost:162.242.195.82"
- "otherhost:50.31.209.229"
添加主機名映射
networks網(wǎng)絡(luò)
volumes: # 以上每個服務(wù)中掛載映射的目錄都在這里寫入一次,也叫作聲明volume
test1:
test2:
test3:
networks: # 創(chuàng)建橋接網(wǎng)絡(luò) 如果創(chuàng)建的網(wǎng)卡沒使用則不會創(chuàng)建 如果docker-compose down也會刪除創(chuàng)建的網(wǎng)卡
my_net:
driver: bridge # 指定網(wǎng)卡類型橋接
myapp_net:
driver: bridge
# 網(wǎng)卡類型
net: "bridge"
net: "none"
net: "container:[name or id]"
net: "host"
dns
dns: 8.8.8.8
dns:
- 8.8.8.8
- 9.9.9.9
自定義dns服務(wù)器
其他參數(shù)
options:
max-size: "1000k"
max-file: "20"
cpu_shares: 73 # 服務(wù)容器相對于其他容器的 CPU 權(quán)重。
cpu_quota: 50000
cpuset: 0,1
cpu_count定義服務(wù)容器的可用 CPU 數(shù)量
cpu_percent定義可用 CPU 的可用百分比。
user: postgresql
working_dir: /code
domainname: foo.com
hostname: foo
ipc: host
mac_address: 02:42:ac:11:65:43
mem_limit: 1000000000
mem_limit: 128M
memswap_limit: 2000000000
privileged: true
restart: always
read_only: true
shm_size: 64M
stdin_open: true # 類似于docker run -d
tty: true # 類似于docker run -t
批量刪除容器
# 關(guān)閉所有正在運行容器
docker ps | awk '{print $1}' | xargs docker stop
# 刪除所有容器應(yīng)用
docker ps -a | awk '{print $1}' | xargs docker rm
# 或者
docker rm $(docker ps -a -q)
111
111
11
111
END