1.设置开机启动
If you want Docker to start at boot, you should also:
$ sudo systemctl enable docker
2. 启动,停止,重启
$ sudo systemctl start docker
$ sudo systemctl stop docker
$ sudo systemctl restart docker
3.开启本地和远程
修改/etc/sysconfig/docker文件,替换
-H fd://为
-H unix:///var/run/docker.sock -H 0.0.0.0:2376
4.boot2docker启动参数
/usr/local/bin/docker -d -D -g /var/lib/docker -H unix:// -H tcp://0.0.0.0:2376 --tlsverify --tlscacert=/var/lib/boot2docker/tls/ca.pem --tlscert=/var/lib/
5. 确认docker启动
Verify that the docker daemon is running as specified with the ps command.
$ ps aux | grep docker | grep -v grep
Configuring and running Docker on various distributions
After successfully installing Docker, the docker daemon runs with its default configuration.
In a production environment, system administrators typically configure the dockerdaemon to start and stop according to an organization’s requirements. In most cases, the system administrator configures a process manager such as SysVinit, Upstart, or systemd to manage the docker daemon’s start and stop.
Running the docker daemon directly
The docker daemon can be run directly using the -d option. By default it listens on the Unix socket unix:///var/run/docker.sock
$ docker -d
INFO[0000] +job init_networkdriver()
INFO[0000] +job serveapi(unix:///var/run/docker.sock)
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)
...
...
Configuring the docker daemon directly
If you’re running the docker daemon directly by running docker -d instead of using a process manager, you can append the configuration options to the dockerrun command directly. Just like the -d option, other options can be passed to the docker daemon to configure it.
Some of the daemon’s options are:
| Flag | Description |
|---|---|
-D, --debug=false |
Enable or disable debug mode. By default, this is false. |
-H,--host=[] |
Daemon socket(s) to connect to. |
--tls=false |
Enable or disable TLS. By default, this is false. |
Here is a an example of running the docker daemon with configuration options:
$ docker -d -D --tls=true --tlscert=/var/docker/server.pem --tlskey=/var/docker/serverkey.pem -H tcp://192.168.59.3:2376
These options :
- Enable
-D(debug) mode - Set
tlsto true with the server certificate and key specified using--tlscertand--tlskeyrespectively - Listen for connections on
tcp://192.168.59.3:2376
The command line reference has the complete list of daemon flags with explanations.
Ubuntu
As of 14.04, Ubuntu uses Upstart as a process manager. By default, Upstart jobs are located in /etc/init and the docker Upstart job can be found at /etc/init/docker.conf.
After successfully installing Docker for Ubuntu, you can check the running status using Upstart in this way:
$ sudo status docker
docker start/running, process 989
Running Docker
You can start/stop/restart the docker daemon using
$ sudo start docker
$ sudo stop docker
$ sudo restart docker
Configuring Docker
You configure the docker daemon in the /etc/default/docker file on your system. You do this by specifying values in a DOCKER_OPTS variable.
To configure Docker options:
-
Log into your host as a user with
sudoorrootprivileges. -
If you don’t have one, create the
/etc/default/dockerfile on your host. Depending on how you installed Docker, you may already have this file. -
Open the file with your favorite editor.
$ sudo vi /etc/default/docker -
Add a
DOCKER_OPTSvariable with the following options. These options are appended to thedockerdaemon’s run command.
DOCKER_OPTS="-D --tls=true --tlscert=/var/docker/server.pem --tlskey=/var/docker/serverkey.pem -H tcp://192.168.59.3:2376"
These options :
- Enable
-D(debug) mode - Set
tlsto true with the server certificate and key specified using--tlscertand--tlskeyrespectively - Listen for connections on
tcp://192.168.59.3:2376
The command line reference has the complete list of daemon flags with explanations.
-
Save and close the file.
-
Restart the
dockerdaemon.$ sudo restart docker -
Verify that the
dockerdaemon is running as specified with thepscommand.$ ps aux | grep docker | grep -v grep
Logs
By default logs for Upstart jobs are located in /var/log/upstart and the logs for docker daemon can be located at /var/log/upstart/docker.log
$ tail -f /var/log/upstart/docker.log
INFO[0000] Loading containers: done.
INFO[0000] docker daemon: 1.6.0 4749651; execdriver: native-0.2; graphdriver: aufs
INFO[0000] +job acceptconnections()
INFO[0000] -job acceptconnections() = OK (0)
INFO[0000] Daemon has completed initialization
CentOS / Red Hat Enterprise Linux / Fedora
As of 7.x, CentOS and RHEL use systemd as the process manager. As of 21, Fedora uses systemd as its process manager.
After successfully installing Docker for CentOS/Red Hat Enterprise Linux/Fedora, you can check the running status in this way:
$ sudo systemctl status docker
Running Docker
You can start/stop/restart the docker daemon using
$ sudo systemctl start docker
$ sudo systemctl stop docker
$ sudo systemctl restart docker
If you want Docker to start at boot, you should also:
$ sudo systemctl enable docker
Configuring Docker
You configure the docker daemon in the /etc/sysconfig/docker file on your host. You do this by specifying values in a variable. For CentOS 7.x and RHEL 7.x, the name of the variable is OPTIONS and for CentOS 6.x and RHEL 6.x, the name of the variable is other_args. For this section, we will use CentOS 7.x as an example to configure the docker daemon.
By default, systemd services are located either in /etc/systemd/service, /lib/systemd/system or /usr/lib/systemd/system. The docker.service file can be found in either of these three directories depending on your host.
To configure Docker options:
-
Log into your host as a user with
sudoorrootprivileges. -
If you don’t have one, create the
/etc/sysconfig/dockerfile on your host. Depending on how you installed Docker, you may already have this file. -
Open the file with your favorite editor.
$ sudo vi /etc/sysconfig/docker -
Add a
OPTIONSvariable with the following options. These options are appended to the command that starts thedockerdaemon.
OPTIONS="-D --tls=true --tlscert=/var/docker/server.pem --tlskey=/var/docker/serverkey.pem -H tcp://192.168.59.3:2376"
These options :
- Enable
-D(debug) mode - Set
tlsto true with the server certificate and key specified using--tlscertand--tlskeyrespectively - Listen for connections on
tcp://192.168.59.3:2376
The command line reference has the complete list of daemon flags with explanations.
-
Save and close the file.
-
Restart the
dockerdaemon.$ sudo service docker restart -
Verify that the
dockerdaemon is running as specified with thepscommand.$ ps aux | grep docker | grep -v grep
Logs
systemd has its own logging system called the journal. The logs for the dockerdaemon can be viewed using journalctl -u docker
$ sudo journalctl -u docker
May 06 00:22:05 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
May 06 00:22:05 localhost.localdomain docker[2495]: time="2015-05-06T00:22:05Z" level="info" msg="+job serveapi(unix:///var/run/docker.sock)"
May 06 00:22:05 localhost.localdomain docker[2495]: time="2015-05-06T00:22:05Z" level="info" msg="Listening for HTTP on unix (/var/run/docker.sock)"
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="+job init_networkdriver()"
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="-job init_networkdriver() = OK (0)"
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="Loading containers: start."
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="Loading containers: done."
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="docker daemon: 1.5.0-dev fc0329b/1.5.0; execdriver: native-0.2; graphdriver: devicemapper"
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="+job acceptconnections()"
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="-job acceptconnections() = OK (0)"
Note: Using and configuring journal is an advanced topic and is beyond the scope of this article.