docker使用参考:
https://blog.csdn.net/abcdocker/article/details/53158210
https://blog.csdn.net/zdy0_2004/article/details/51816899
https://blog.csdn.net/godiors_163/article/details/59069108
https://blog.csdn.net/zjin_hua/article/details/52041757
安装
Linux安装
curl -fsSL https://get.docker.com/ | sh
# daocloud.io 国内镜像
curl -sSL https://get.daocloud.io/docker| sh
该安装包适用于 Ubuntu,Debian,Centos 等大部分主流 Linux 发行版。
查看版本:
docker version
显示:
Client:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: WedJun 1 21:23:11 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: WedJun 1 21:23:11 2016
OS/Arch: linux/amd64
为了后面的需要,我们这里下载个ununtu的镜像:
docker search ubutun
docker pull ubutun
# 查看所有可用镜像
docker images -a
客户端和守护进程
Docker 的 C/S 模式
docker是C/S架构,使用client与Server通信。
支持三种连接方式:
unix:///var/run/docker.sock
tcp://host:port
fd://socketfd
Docker 守护进程的配置和操作
使用ps -ef | grep docker查看docker进程。
管理docker服务:
service docker start
service docker stop
service docker restart
如使用service docker start实际上是执行了/bin/systemctlstart docker.service命令。
建议重启使用:
systemctl daemon-reload
systemctl restartdocker.service
docker守护进程的配置和操作模式:
docker -d [OPTIONS]
运行相关:
-D, --debug=false
-e,--exec-driver="native"
-p,--pidfile="/var/run/docker.pid"
服务器相关:
-G,--group="docker"
-H,--host=[]
--tls=false
RemoteAPI相关:
--api-enable-cors=false
存储相关:
-S,--storage-driver=""
--selinux-enabled=false
--storage-opt=[]
网络设置相关:
-b,--bridge=""设置自定义网桥
--bip=""
--dns=[]
--ip=0.0.0.0
启动配置文件:
Ubuntu: /etc/default/docker
CentOS: /etc/sysconfig/docker
如果没有配置文件,可以直接编辑:
vim /lib/systemd/system/docker.service
里面的ExecStart就是启动配置,默认是:
ExecStart=/usr/bin/docker -H fd://
我们可以加几个配置:
ExecStart=/usr/bin/docker -Htcp://0.0.0.0:2375 -H unix:///var/run/docker.sock -H fd://--label name=server_1
然后重启:
systemctl daemon-reload
systemctl restartdocker.service
# 如果出问题了,可以使用下面命令查看:
systemctl status docker.service
通过ps -ef | grep docker可以查看刚才添加的信息:
[root@localhost ~]# ps -ef | grep docker
root 8262 1 0 23:50? 00:00:00 /usr/bin/docker daemon -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock-H fd:// --label name=server_1
解决centos7和docker1.9没有配置文件问题 - 建站 - IT精英团
http://www.itnpc.com/news/web/145083113731628.html
Docker 的远程访问
使用第二台安装有docker的服务器做演示。为区分,设置label不同。
修改守护进程默认的启动配置:
默认是:-H fd://
可修改为:-H tcp://0.0.0.0:2375 -Hunix:///var/run/docker.sock -H fd:// --label name=server_1
可设置多个连接方式。
· 通过http连接Server:
curl http://127.0.0.1:2375/info
访问的是服务器127.0.0.1:2375的info接口,返回服务器相关信息。
· 通过docker客户端访问Server:
docker -H tcp://127.0.0.1:2375 info
和服务器端一样,客户端也支持三种连接方式,默认是 -Hunix:///var/run/docker.sock:
-H unix:///path/to/sock
tcp://host:port
fd://socketfd
docker客户端使用dockerinfo默认访问的是本地Server。可以修改环境变量DOCKER_HOST改变默认连接。命令行直接输入:
export DOCKER_HOST="tcp://127.0.0.1:2375"
127.0.0.1:237可以替换为实际的Server地址。
如果想恢复本地连接,将DOCKER_HOST置空即可:
export DOCKER_HOST=""
Docker容器
容器的基本操作
Docker run IMAGE [COMMOND] [ARG...] 在新的容器中执行命令
该命令每运行一次,就创建了一个新的容器。
docker run ubuntu echo 'hello world'运行一个新的容器,并执行命令echo
docker run -i -t --name testubuntu /bin/bash 以交互式终端运行一个新的容器,镜像是ubuntu,使用bash,容器别名test
-i 交互式界面,默认是false
-t 伪终端,默认false
--name 容器别名,默认随机命名
exit 退出交互式界面,容器停止运行
Crtl+P 或者Crtl+Q 退出交互式界面,容器在后台运行。(注意是大写P和Q)
查看容器:
docker ps 查看正在运行的容器
docker ps -a 查看所有容器
docker ps -l 查看最近一次运行的容器
示例:
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8c52c83c1903 redis "docker-entrypoint.sh" 2 hours ago Exited (0) 2 hours ago myredis
容器操作:
dockercreate 容器名或者容器ID 创建容器
dockerstart [-i] 容器名 启动容器
dockerrun 容器名或者容器ID 运行容器,相当于docker create + docker start
dockerattach 容器名或者容器ID 进入容器的命令行
dockerstop 容器名 停止容器
dockerrm 容器名 删除容器
docker top 容器名 查看WEB应用程序容器的进程
docker inspect 容器名 查看Docker的底层信息
删除容器时,容器必须是停止状态,否则会报错误。
守护式容器
什么是守护式容器?
· 能够长期运行
· 没有交互式会话
· 适合运行应用程序和服务
启动守护式容器:
docker run -d IMAGE [COMMOND] [ARG...]
-d 让容器在后台运行
后台运行任务:
docker run -d --name d1 ubuntu /bin/sh -c "while true;doecho hello world;sleep 1;done;"
b89b9ce64d34bd202a642c8190428f4776f15e882f138949259722f22120201a
返回了一个守护进程的唯一ID。
查看守护进程的运行情况:
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b89b9ce64d34 ubuntu "/bin/sh-c 'while tr" 3 minutesago Up 3 minutes d1
[root@localhost ~]# docker logs -f b89b9ce64d34
hello world
hello world
hello world
hello world
hello world
[root@localhost ~]# docker logs -f -t --tail 2 b89b9ce64d34
2016-06-26T10:13:19.786516589Z helloworld
2016-06-26T10:13:20.788871572Z helloworld
2016-06-26T10:13:21.791921389Z helloworld
[root@localhost ~]# docker top b89b9ce64d34
UID PID PPID C STIME TTY TIME CMD
root 4156 4148 0 06:05 ? 00:00:00 /bin/sh -c whiletrue;do echo hello world;sleep 1;done;
root 4850 4156 0 06:16 ? 00:00:00 sleep1
docker logs [-f] [-t] [--tail] 容器名或id 查看容器内WEB应用程序日志
-f --follow=true|false,默认false,一直跟随log变化
-t --timestamps=true|false,默认false,加上时间戳
--tail="all",返回最新多少条日志
在运行的容器中启动新的进程:
docker exec [-d] [-i] [-t] 容器名[COMMOND] [ARG...]
停止守护式进程:
docker stop容器名 发送停止信号,等待关闭
docker kill容器名 直接关闭容器
Docker镜像
搜索镜像
docker search [-s] IMAGE
下载镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
[root@bogon ~]#docker pull ubuntu:16.04
[root@bogon ~]#docker pull daocloud.io/library/ubuntu:16.04
下载镜像名称其实由三部分组成:daocloud.io/library/ubuntu:16.04
其中其中daocloud.io是注册服务器地址,默认是registry.hub.docker.com;ubuntu是仓库名,16.04是标签名,默认是latest。
查看已下载镜像列表
docker images [-a]
[root@bogon ~]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/library/ubuntu 16.04 12543ced0f6f 2 weeks ago 122.4 MB
ubutun latest 12543ced0f6f 2 weeks ago 122.4 MB
daocloud.io/daocloud/dao-2048 latest 6c1ff658e77e 3 months ago 7.598 MB
daocloud.io/daocloud/alpine latest e9f3e32a4303 3 months ago 11.52 MB
daocloud.io/library/centos 7.1.1503 fac97c5c4748 8 months ago 212.1 MB
daocloud.io/daocloud/dao-redis master-init 173a30377d85 13 months ago 190.4 MB
给镜像添加标签
docker tag [OPTIONS]IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
[root@bogon ~]# docker tag daocloud.io/library/ubuntu:16.04ubuntu:latest
删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
# 按标签删除:多个标签,仅会删除当前标签,不会删除镜像
[root@bogon~]# docker rmi ubuntu:latest
# 按ID删除:直接删除镜像
[root@bogon~]# docker rmi 12543ced0f6f
选项:
-f, --force 强制删除镜像
--no-prune 不删除untagged parents
导出镜像
docker save [OPTIONS] IMAGE [IMAGE...]
[root@bogon ~]# dockersave -o ubuntu_latest.tar ubuntu:latest
[root@bogon ~]# ls -l
-rw-r--r--. 1 rootroot 128086528 Jun28 12:39 ubuntu_latest.tar
选项:
-o, --output 写入到文件
导入镜像
docker load--input ubuntu_latest.tar
# 或者
docker load< ubuntu_latest.tar
选项:
-i, --input 从压缩包载入镜像
上传镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
选项:
--disable-content-trust=true 跳过镜像签名
本文介绍 Docker 的基本使用方法,包括安装、配置、镜像管理、容器操作等内容。涵盖 Linux 下的 Docker 安装步骤、远程访问配置、常用命令解析及守护式容器的使用技巧。

6770

被折叠的 条评论
为什么被折叠?



